@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
36 lines (35 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateLogger = void 0;
var logger_1 = require("../../../logger");
var commons_1 = require("./commons");
function isILogger(log) {
return (0, commons_1.isLogger)(log) && 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, logger = settings.logger;
var logLevel = initialLogLevel;
if (debug !== undefined) {
if (isILogger(debug)) {
debug.setLogger(logger);
return debug;
}
logLevel = (0, commons_1.getLogLevel)(settings.debug);
}
var log = new logger_1.Logger({ logLevel: logLevel || initialLogLevel });
log.setLogger(logger);
// `debug` value is invalid if logLevel is undefined at this point
if (!logLevel)
log._log('error', 'Invalid `debug` value at config. Logs will be disabled.');
return log;
}
exports.validateLogger = validateLogger;