UNPKG

@thoughtspot/visual-embed-sdk

Version:
78 lines 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setGlobalLogLevelOverride = exports.logger = exports.LogLevel = void 0; const utils_1 = require("../utils"); const types_1 = require("../types"); Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return types_1.LogLevel; } }); const logFunctions = { [types_1.LogLevel.SILENT]: () => undefined, [types_1.LogLevel.ERROR]: console.error, [types_1.LogLevel.WARN]: console.warn, [types_1.LogLevel.INFO]: console.info, [types_1.LogLevel.DEBUG]: console.debug, [types_1.LogLevel.TRACE]: console.trace, }; let globalLogLevelOverride = types_1.LogLevel.TRACE; const setGlobalLogLevelOverride = (logLevel) => { globalLogLevelOverride = logLevel; }; exports.setGlobalLogLevelOverride = setGlobalLogLevelOverride; const logLevelToNumber = { [types_1.LogLevel.SILENT]: 0, [types_1.LogLevel.ERROR]: 1, [types_1.LogLevel.WARN]: 2, [types_1.LogLevel.INFO]: 3, [types_1.LogLevel.DEBUG]: 4, [types_1.LogLevel.TRACE]: 5, }; const compareLogLevels = (logLevel1, logLevel2) => { const logLevel1Index = logLevelToNumber[logLevel1]; const logLevel2Index = logLevelToNumber[logLevel2]; return logLevel1Index - logLevel2Index; }; class Logger { constructor() { this.logLevel = types_1.LogLevel.ERROR; this.setLogLevel = (newLogLevel) => { this.logLevel = newLogLevel; }; this.getLogLevel = () => this.logLevel; } canLog(logLevel) { if (logLevel === types_1.LogLevel.SILENT) return false; if (!(0, utils_1.isUndefined)(globalLogLevelOverride)) { return compareLogLevels(globalLogLevelOverride, logLevel) >= 0; } return compareLogLevels(this.logLevel, logLevel) >= 0; } logMessages(args, logLevel) { if (this.canLog(logLevel)) { const logFn = logFunctions[logLevel]; if (logFn) { logFn(...args); } } } log(...args) { this.info(args); } info(...args) { this.logMessages(args, types_1.LogLevel.INFO); } debug(...args) { this.logMessages(args, types_1.LogLevel.DEBUG); } trace(...args) { this.logMessages(args, types_1.LogLevel.TRACE); } error(...args) { this.logMessages(args, types_1.LogLevel.ERROR); } warn(...args) { this.logMessages(args, types_1.LogLevel.WARN); } } const logger = new Logger(); exports.logger = logger; //# sourceMappingURL=logger.js.map