better-logging
Version:
better-logging is a drop in replacement for the default logging methods of node.js
58 lines (57 loc) • 3.66 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveConfig = exports.DefaultConfig = exports.Config = void 0;
const typescript_helpers_1 = require("@olian/typescript-helpers");
const messageConstructionStrategy_1 = require("./enums/messageConstructionStrategy");
const dark_1 = require("../themes/dark");
class Config extends typescript_helpers_1.DataClass {
}
exports.Config = Config;
exports.DefaultConfig = new Config({
messageConstructionStrategy: messageConstructionStrategy_1.MessageConstructionStrategy.ALL,
format: (ctx) => `${ctx.time} ${ctx.type} ${ctx.msg}`,
formatStamp: (content) => `[${content}]`,
saveToFile: null,
color: dark_1.theme,
logLevels: {
debug: 4,
log: 3,
info: 2,
line: 1,
warn: 1,
error: 0,
},
});
// Treats undefined & null in the same way a missing key
const treatAsFalsy = [null, undefined];
const resolveConfig = (config) => new Config({
messageConstructionStrategy: (0, typescript_helpers_1.useValueOrFallback)(config, 'messageConstructionStrategy', exports.DefaultConfig.messageConstructionStrategy, treatAsFalsy),
format: (0, typescript_helpers_1.useValueOrFallback)(config, 'format', exports.DefaultConfig.format, treatAsFalsy),
formatStamp: (0, typescript_helpers_1.useValueOrFallback)(config, 'formatStamp', exports.DefaultConfig.formatStamp, treatAsFalsy),
saveToFile: (0, typescript_helpers_1.useValueOrFallback)(config, 'saveToFile', exports.DefaultConfig.saveToFile, treatAsFalsy),
color: !config.color
? exports.DefaultConfig.color
: {
base: (0, typescript_helpers_1.useValueOrFallback)(config.color, 'base', exports.DefaultConfig.color.base, treatAsFalsy),
type: !config.color.type
? exports.DefaultConfig.color.type
: {
debug: (0, typescript_helpers_1.useValueOrFallback)(config.color.type, 'debug', exports.DefaultConfig.color.type.debug, treatAsFalsy),
error: (0, typescript_helpers_1.useValueOrFallback)(config.color.type, 'error', exports.DefaultConfig.color.type.error, treatAsFalsy),
info: (0, typescript_helpers_1.useValueOrFallback)(config.color.type, 'info', exports.DefaultConfig.color.type.info, treatAsFalsy),
log: (0, typescript_helpers_1.useValueOrFallback)(config.color.type, 'log', exports.DefaultConfig.color.type.log, treatAsFalsy),
warn: (0, typescript_helpers_1.useValueOrFallback)(config.color.type, 'warn', exports.DefaultConfig.color.type.warn, treatAsFalsy),
},
},
logLevels: !config.logLevels
? exports.DefaultConfig.logLevels
: {
debug: (0, typescript_helpers_1.useValueOrFallback)(config.logLevels, 'debug', exports.DefaultConfig.logLevels.debug, treatAsFalsy),
error: (0, typescript_helpers_1.useValueOrFallback)(config.logLevels, 'error', exports.DefaultConfig.logLevels.error, treatAsFalsy),
info: (0, typescript_helpers_1.useValueOrFallback)(config.logLevels, 'info', exports.DefaultConfig.logLevels.info, treatAsFalsy),
log: (0, typescript_helpers_1.useValueOrFallback)(config.logLevels, 'log', exports.DefaultConfig.logLevels.log, treatAsFalsy),
warn: (0, typescript_helpers_1.useValueOrFallback)(config.logLevels, 'warn', exports.DefaultConfig.logLevels.warn, treatAsFalsy),
line: (0, typescript_helpers_1.useValueOrFallback)(config.logLevels, 'line', exports.DefaultConfig.logLevels.line, treatAsFalsy),
},
});
exports.resolveConfig = resolveConfig;
;