rxcc
Version:
A tool to pack repository contents to single file for AI consumption
74 lines • 2.02 kB
JavaScript
import util from 'node:util';
import pc from 'picocolors';
export const repomixLogLevels = {
SILENT: -1, // No output
ERROR: 0, // error
WARN: 1, // warn
INFO: 2, // success, info, log, note
DEBUG: 3, // debug, trace
};
class RepomixLogger {
constructor() {
this.level = repomixLogLevels.INFO;
this.init();
}
init() {
this.setLogLevel(repomixLogLevels.INFO);
}
setLogLevel(level) {
this.level = level;
}
getLogLevel() {
return this.level;
}
error(...args) {
if (this.level >= repomixLogLevels.ERROR) {
console.error(pc.red(this.formatArgs(args)));
}
}
warn(...args) {
if (this.level >= repomixLogLevels.WARN) {
console.log(pc.yellow(this.formatArgs(args)));
}
}
success(...args) {
if (this.level >= repomixLogLevels.INFO) {
console.log(pc.green(this.formatArgs(args)));
}
}
info(...args) {
if (this.level >= repomixLogLevels.INFO) {
console.log(pc.cyan(this.formatArgs(args)));
}
}
log(...args) {
if (this.level >= repomixLogLevels.INFO) {
console.log(this.formatArgs(args));
}
}
note(...args) {
if (this.level >= repomixLogLevels.INFO) {
console.log(pc.dim(this.formatArgs(args)));
}
}
debug(...args) {
if (this.level >= repomixLogLevels.DEBUG) {
console.log(pc.blue(this.formatArgs(args)));
}
}
trace(...args) {
if (this.level >= repomixLogLevels.DEBUG) {
console.log(pc.gray(this.formatArgs(args)));
}
}
formatArgs(args) {
return args
.map((arg) => (typeof arg === 'object' ? util.inspect(arg, { depth: null, colors: true }) : arg))
.join(' ');
}
}
export const logger = new RepomixLogger();
export const setLogLevel = (level) => {
logger.setLogLevel(level);
};
//# sourceMappingURL=logger.js.map