@v4fire/core
Version:
V4Fire core library
68 lines (67 loc) • 1.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = log;
var _functools = require("../../../core/functools");
var _pipelines = _interopRequireDefault(require("../../../core/log/curator/pipelines"));
var _base = require("../../../core/log/base");
var _const = require("../../../core/log/curator/const");
function log(context, ...details) {
let logContext,
logLevel = _base.DEFAULT_LEVEL;
if (Object.isString(context)) {
logContext = context !== '' ? context : _const.DEFAULT_CONTEXT;
} else {
logLevel = context.logLevel ?? _base.DEFAULT_LEVEL;
logContext = context.context !== '' ? context.context : _const.DEFAULT_CONTEXT;
}
logContext = `${logContext}:${logLevel}`;
let logDetails, logError;
if (details[0] instanceof Error) {
logError = details[0];
details = details.slice(1);
}
const additionals = {};
if (details.length > 0) {
Object.defineProperty(additionals, 'details', {
configurable: true,
enumerable: true,
get() {
if (logDetails != null) {
return logDetails;
}
return logDetails = prepareDetails(details);
}
});
}
const event = {
context: logContext,
level: logLevel,
error: logError,
additionals,
get details() {
(0, _functools.deprecate)({
name: 'details',
type: 'property',
renamedTo: 'additionals'
});
return additionals;
}
};
for (let i = 0; i < _pipelines.default.length; ++i) {
try {
_pipelines.default[i].run(event);
} catch (e) {
console.error(e);
}
}
}
function prepareDetails(details) {
for (let i = 0; i < details.length; i++) {
const el = details[i];
details[i] = Object.isFunction(el) ? el() : el;
}
return details;
}