Repository URL to install this package:
Version:
2.0.11-7 ▾
|
notion-desktop
/
usr
/
lib
/
notion-desktop
/
resources
/
app
/
node_modules
/
electron-log
/
src
/
log.js
|
---|
'use strict';
module.exports = {
compareLevels: compareLevels,
log: log,
runTransport: runTransport,
runTransports: runTransports,
};
function log(electronLog, options) {
var transports = electronLog.transports;
var message = {
data: Array.prototype.slice.call(arguments, 2),
date: new Date(),
level: options.level,
scope: options.scope ? options.scope.toJSON() : null,
variables: electronLog.variables,
};
runTransports(transports, message, electronLog);
}
function runTransports(transports, message, electronLog) {
for (var i in transports) {
if (Object.prototype.hasOwnProperty.call(transports, i)) {
runTransport(transports[i], message, electronLog);
}
}
}
function runTransport(transport, message, electronLog) {
if (typeof transport !== 'function' || transport.level === false) {
return;
}
if (!compareLevels(electronLog.levels, transport.level, message.level)) {
return;
}
message = runHooks(electronLog.hooks, transport, message);
if (message) {
transport(message);
}
}
function compareLevels(levels, passLevel, checkLevel) {
var pass = levels.indexOf(passLevel);
var check = levels.indexOf(checkLevel);
if (check === -1 || pass === -1) {
return true;
}
return check <= pass;
}
function runHooks(hooks, transport, message) {
if (!hooks || !hooks.length) {
return message;
}
// eslint-disable-next-line no-plusplus
for (var i = 0; i < hooks.length; i++) {
message = hooks[i](message, transport);
if (!message) break;
}
return message;
}