kubricate
Version:
A TypeScript framework for building reusable, type-safe Kubernetes infrastructure — without the YAML mess.
37 lines • 1.03 kB
JavaScript
import c from 'ansis';
import { MARK_ERROR, MARK_INFO, MARK_WARNING } from './constant.js';
export 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(`${MARK_INFO} ${message}`);
}
warn(message) {
if (this.shouldLog('warn')) console.warn(c.yellow(`${MARK_WARNING} ${message}`));
}
error(message) {
console.error(c.red(`${MARK_ERROR} ${message}`));
}
debug(message) {
if (this.shouldLog('debug')) console.debug(c.dim(`[debug] ${message}`));
}
}
export class SilentLogger {
level = 'silent';
log() {}
info() {}
warn() {}
error() {}
debug() {}
}
//# sourceMappingURL=logger.js.map