/* eslint-disable */
|
'use strict';
|
|
function noop() {}
|
|
const fakeLogger = {
|
trace: noop,
|
debug: noop,
|
log: noop,
|
warn: noop,
|
info: noop,
|
error: noop
|
};
|
|
let exportedLogger = fakeLogger;
|
|
//let lastCallTime;
|
// function formatMsgWithTimeInfo(type, msg) {
|
// const now = Date.now();
|
// const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';
|
// lastCallTime = now;
|
// msg = (new Date(now)).toISOString() + ' | [' + type + '] > ' + msg + ' ( ' + diff + ' ms )';
|
// return msg;
|
// }
|
|
function formatMsg(type, msg) {
|
msg = '[' + type + '] > ' + msg;
|
return msg;
|
}
|
|
function consolePrintFn(type) {
|
const func = window.console[type];
|
if (func) {
|
return function(...args) {
|
if(args[0]) {
|
args[0] = formatMsg(type, args[0]);
|
}
|
func.apply(window.console, args);
|
};
|
}
|
return noop;
|
}
|
|
function exportLoggerFunctions(debugConfig, ...functions) {
|
functions.forEach(function(type) {
|
exportedLogger[type] = debugConfig[type] ? debugConfig[type].bind(debugConfig) : consolePrintFn(type);
|
});
|
}
|
|
export var enableLogs = function(debugConfig) {
|
if (debugConfig === true || typeof debugConfig === 'object') {
|
exportLoggerFunctions(debugConfig,
|
// Remove out from list here to hard-disable a log-level
|
//'trace',
|
'debug',
|
'log',
|
'info',
|
'warn',
|
'error'
|
);
|
// Some browsers don't allow to use bind on console object anyway
|
// fallback to default if needed
|
try {
|
exportedLogger.log();
|
} catch (e) {
|
exportedLogger = fakeLogger;
|
}
|
}
|
else {
|
exportedLogger = fakeLogger;
|
}
|
};
|
|
export var logger = exportedLogger;
|