UNPKG

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
"use strict"; 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;