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
JavaScript
;
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'
});
};