UNPKG

@toreda/log

Version:

Lightweight TypeScript logger with flexible custom transports.

81 lines (80 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogLevel = void 0; const defaults_1 = require("../defaults"); const level_1 = require("../check/level"); /** * @category Log Level */ class LogLevel { constructor(initial) { if ((0, level_1.checkLevel)(initial)) { this.currentLevel = initial; } else { this.currentLevel = 0x0; } } set(level) { if (!(0, level_1.checkLevel)(level)) { return false; } this.currentLevel = level; return true; } get() { if (!(0, level_1.checkLevel)(this.currentLevel)) { return defaults_1.Defaults.GlobalLogLevel; } return this.currentLevel; } enableLevel(level) { if (!(0, level_1.checkLevel)(level)) { return false; } const result = this.currentLevel | level; if (!(0, level_1.checkLevel)(result)) { return false; } this.currentLevel = result; return true; } enableLevels(levels) { let success = true; if (!Array.isArray(levels)) { return false; } for (const level of levels) { const result = this.enableLevel(level); if (!result) { success = false; } } return success; } disableLevel(level) { if (!(0, level_1.checkLevel)(level)) { return false; } const result = this.currentLevel & ~level; if (!(0, level_1.checkLevel)(result)) { return false; } this.currentLevel = result; return true; } disableLevels(levels) { let success = true; if (!Array.isArray(levels)) { return false; } for (const level of levels) { const result = this.disableLevel(level); if (!result) { success = false; } } return success; } } exports.LogLevel = LogLevel;