kubricate
Version:
A TypeScript framework for building reusable, type-safe Kubernetes infrastructure — without the YAML mess.
50 lines (49 loc) • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SilentLogger = exports.ConsoleLogger = void 0;
var _ansis = /*#__PURE__*/_interopRequireDefault(/*#__PURE__*/require("ansis"));
var _constant = /*#__PURE__*/require("./constant.js");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
};
}
class ConsoleLogger {
level;
constructor(level = 'debug') {
this.level = level;
}
shouldLog(target) {
if (this.level === 'silent') return false; // silent disables all except manual error()
const levels = ['error', 'warn', 'info', 'debug'];
return levels.indexOf(target) <= levels.indexOf(this.level);
}
log(message) {
if (this.shouldLog('info')) console.log(message);
}
info(message) {
if (this.shouldLog('info')) console.info(`${_constant.MARK_INFO} ${message}`);
}
warn(message) {
if (this.shouldLog('warn')) console.warn(_ansis.default.yellow(`${_constant.MARK_WARNING} ${message}`));
}
error(message) {
console.error(_ansis.default.red(`${_constant.MARK_ERROR} ${message}`));
}
debug(message) {
if (this.shouldLog('debug')) console.debug(_ansis.default.dim(`[debug] ${message}`));
}
}
exports.ConsoleLogger = ConsoleLogger;
class SilentLogger {
level = 'silent';
log() {}
info() {}
warn() {}
error() {}
debug() {}
}
exports.SilentLogger = SilentLogger;
//# sourceMappingURL=logger.js.map