UNPKG

repomix

Version:

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

92 lines 2.78 kB
import util from 'node:util'; import { workerData } from 'node:worker_threads'; 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 workerData if valid. * This is used in worker threads where configuration is passed via workerData. */ export const setLogLevelByWorkerData = () => { var _a; if (Array.isArray(workerData) && workerData.length > 1 && ((_a = workerData[1]) === null || _a === void 0 ? void 0 : _a.logLevel) !== undefined) { const logLevel = workerData[1].logLevel; if (logLevel === repomixLogLevels.SILENT || logLevel === repomixLogLevels.ERROR || logLevel === repomixLogLevels.WARN || logLevel === repomixLogLevels.INFO || logLevel === repomixLogLevels.DEBUG) { setLogLevel(logLevel); } } }; //# sourceMappingURL=logger.js.map