vde-layout
Version:
Terminal multiplexer layout management tool for VDE (Vibe Coding Development Environment)
67 lines • 2.29 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = exports.Logger = exports.LogLevel = void 0;
const chalk_1 = __importDefault(require("chalk"));
var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
LogLevel[LogLevel["WARN"] = 1] = "WARN";
LogLevel[LogLevel["INFO"] = 2] = "INFO";
LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
})(LogLevel || (exports.LogLevel = LogLevel = {}));
class Logger {
level;
prefix;
constructor(options = {}) {
this.level = options.level ?? this.getDefaultLogLevel();
this.prefix = options.prefix ?? "";
}
getDefaultLogLevel() {
if (process.env.VDE_DEBUG === "true") {
return LogLevel.DEBUG;
}
if (process.env.VDE_VERBOSE === "true") {
return LogLevel.INFO;
}
return LogLevel.WARN;
}
formatMessage(message) {
return this.prefix ? `${this.prefix} ${message}` : message;
}
error(message, error) {
if (this.level >= LogLevel.ERROR) {
console.error(chalk_1.default.red(this.formatMessage(`Error: ${message}`)));
if (error && process.env.VDE_DEBUG === "true") {
console.error(chalk_1.default.gray(error.stack));
}
}
}
warn(message) {
if (this.level >= LogLevel.WARN) {
console.warn(chalk_1.default.yellow(this.formatMessage(message)));
}
}
info(message) {
if (this.level >= LogLevel.INFO) {
console.log(this.formatMessage(message));
}
}
debug(message) {
if (this.level >= LogLevel.DEBUG) {
console.log(chalk_1.default.gray(this.formatMessage(`[DEBUG] ${message}`)));
}
}
success(message) {
console.log(chalk_1.default.green(this.formatMessage(message)));
}
createChild(prefix) {
const childPrefix = this.prefix ? `${this.prefix} ${prefix}` : prefix;
return new Logger({ level: this.level, prefix: childPrefix });
}
}
exports.Logger = Logger;
exports.logger = new Logger();
//# sourceMappingURL=logger.js.map