UNPKG

@cspell/eslint-plugin

Version:
55 lines 1.95 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = void 0; exports.getDefaultLogger = getDefaultLogger; const node_fs_1 = __importDefault(require("node:fs")); const node_path_1 = __importDefault(require("node:path")); const node_util_1 = require("node:util"); const debugMode = false; class Logger { options; logFile; cwd; logToFile = true; enabled = true; useAsync = false; constructor(options) { this.options = options; this.cwd = node_path_1.default.resolve(options.cwd || '.'); const logFileBasename = options.logFile || '.cspell-eslint-plugin.log'; this.logFile = node_path_1.default.resolve(this.cwd, logFileBasename); this.logToFile = options.logToFile ?? true; this.enabled = options.enabled ?? debugMode; this.useAsync = options.useAsync ?? false; } _log(...p) { if (!this.enabled) return; if (!this.logToFile) return console.log(...p); const message = new Date().toISOString() + ' ' + prefixLines((0, node_util_1.format)(...p), ' ') + '\n'; return this.useAsync ? node_fs_1.default.appendFile(this.logFile, message, (err) => err && console.error(err)) : node_fs_1.default.appendFileSync(this.logFile, message); } log = this._log.bind(this); } exports.Logger = Logger; let logger; function getDefaultLogger() { if (logger) return logger; logger = new Logger({}); return logger; } function prefixLines(text, prefix, startIndex = 1) { return text .split('\n') .map((line, index) => (index >= startIndex ? prefix + line : line)) .map((line) => (line.trim() == '' ? '' : line)) .join('\n'); } //# sourceMappingURL=logger.cjs.map