UNPKG

@splitsoftware/splitio-commons

Version:
33 lines (32 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateLogger = void 0; var logger_1 = require("../../../logger"); var commons_1 = require("./commons"); function isLogger(log) { return log !== null && typeof log === 'object' && typeof log.debug === 'function' && typeof log.info === 'function' && typeof log.warn === 'function' && typeof log.error === 'function' && typeof log.setLogLevel === 'function'; } // By default it starts disabled. var initialLogLevel = logger_1.LogLevels.NONE; /** * Validates the `debug` property at config and use it to set the logger. * * @param settings - user config object, with an optional `debug` property of type boolean, string log level or a Logger object. * @returns a logger instance, that might be: the provided logger at `settings.debug`, or one with the given `debug` log level, * or one with NONE log level if `debug` is not defined or invalid. */ function validateLogger(settings) { var debug = settings.debug; var logLevel = initialLogLevel; if (debug !== undefined) { if (isLogger(debug)) return debug; logLevel = (0, commons_1.getLogLevel)(settings.debug); } var log = new logger_1.Logger({ logLevel: logLevel || initialLogLevel }); // @ts-ignore // `debug` value is invalid if logLevel is undefined at this point if (!logLevel) log._log(logger_1.LogLevels.ERROR, 'Invalid `debug` value at config. Logs will be disabled.'); return log; } exports.validateLogger = validateLogger;