UNPKG

openapi-modifier

Version:

This package allows you to automate the process of modifying OpenAPI specifications by applying a set of predefined rules

65 lines (64 loc) 2.39 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TempFileLogger = void 0; const fs_1 = __importDefault(require("fs")); const tmp_1 = __importDefault(require("tmp")); class TempFileLogger { constructor({ name, tmpFile }) { this.writeLog = (level, message) => { const log = `[${new Date().toISOString()} ${this.logsPrefix} ${level}] - ${message}\n`; fs_1.default.appendFileSync(this.tmpFile.fd, new Buffer(log)); }; this.clone = (name) => { return new TempFileLogger({ name, tmpFile: this.tmpFile, }); }; this.trace = (message, obj) => { const stringifiedObj = obj ? JSON.stringify(obj || {}, null, 4) : ''; this.writeLog('trace', message + stringifiedObj); }; this.info = (message) => { this.writeLog('info', message); }; this.notImportantWarning = (message) => { this.writeLog('not important warning', message); }; this.error = (error, message) => { this.writeLog(`error`, message || ''); this.writeLog(`error message`, error.message); this.writeLog(`error stack`, error.stack); // @ts-expect-error this.writeLog(`error object`, error); }; this.errorMessage = (message) => { this.writeLog(`error message`, message || ''); }; this.warning = (message) => { this.writeLog(`warning`, message); }; this.success = (message) => { this.writeLog(`success`, message); }; this.helpInfo = (message) => { this.writeLog(`help info`, message); }; this.getHelpInfo = () => { return `A complete log of this run can be found in: ${this.tmpFile.name}`; }; this.tmpFile = tmpFile || TempFileLogger.createTmpFile(); this.logsPrefix = name ? `${name}: ` : ''; } } exports.TempFileLogger = TempFileLogger; TempFileLogger.createTmpFile = () => { return tmp_1.default.fileSync({ keep: true, postfix: 'verbose-logs.log', prefix: 'npm-openapi-modifier' }); };