@cspell/eslint-plugin
Version:
55 lines • 1.95 kB
JavaScript
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
;