UNPKG

@sap/cli-core

Version:

Command-Line Interface (CLI) Core Module

64 lines (63 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.get = exports.configure = void 0; const types_1 = require("../types"); const LogLevel2Console = { [types_1.LogLevel.INACTIVE]: "inactive", [types_1.LogLevel.ERROR]: "error", [types_1.LogLevel.WARN]: "warn", [types_1.LogLevel.INFO]: "info", [types_1.LogLevel.DEBUG]: "debug", [types_1.LogLevel.TRACE]: "info", }; let logLevel = types_1.LogLevel.INACTIVE; let loggers; let customLogger; const configure = ({ logLevel: newLogLevel, loggers: newLoggers, customLogger: newCustomLogger, }) => { if (newLogLevel) { logLevel = newLogLevel; } if (newLoggers === "RESET") { loggers = undefined; } else if (newLoggers) { loggers = newLoggers; } if (newCustomLogger === "RESET") { customLogger = undefined; } else if (newCustomLogger) { customLogger = newCustomLogger; } }; exports.configure = configure; const logMessage = (namespace, level) => (...args) => { if (level <= logLevel && (loggers ? loggers.test(namespace) : true)) { // @ts-expect-error ts(7053) // eslint-disable-next-line customLogger?.[LogLevel2Console[level]] ? // @ts-expect-error ts(7053) customLogger[LogLevel2Console[level]](...args) : // @ts-expect-error ts(7053) // eslint-disable-next-line console[LogLevel2Console[level]](...[ `[${namespace}:${level === types_1.LogLevel.TRACE ? "trace" : LogLevel2Console[level]}:${new Date().toISOString()}] ${args[0]}`, ...args.slice(1), ]); } }; const get = (namespace) => { return { output: customLogger?.output ? customLogger.output : // eslint-disable-next-line (...args) => console.log(...args), error: logMessage(namespace, types_1.LogLevel.ERROR), warn: logMessage(namespace, types_1.LogLevel.WARN), info: logMessage(namespace, types_1.LogLevel.INFO), log: logMessage(namespace, types_1.LogLevel.INFO), debug: logMessage(namespace, types_1.LogLevel.DEBUG), trace: logMessage(namespace, types_1.LogLevel.TRACE), }; }; exports.get = get;