UNPKG

aico-pack

Version:

A tool to pack repository contents to single file for AI consumption

88 lines 2.54 kB
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); }; /** * Set logger log level from REPOMIX_LOGLEVEL environment variable if valid. */ export const setLogLevelByEnv = () => { const logLevelStr = process.env.REPOMIX_LOGLEVEL; const logLevelNum = Number(logLevelStr); if (logLevelNum === repomixLogLevels.SILENT || logLevelNum === repomixLogLevels.ERROR || logLevelNum === repomixLogLevels.WARN || logLevelNum === repomixLogLevels.INFO || logLevelNum === repomixLogLevels.DEBUG) { setLogLevel(logLevelNum); } }; //# sourceMappingURL=logger.js.map