openapi-modifier
Version:
This package allows you to automate the process of modifying OpenAPI specifications by applying a set of predefined rules
54 lines (53 loc) • 2.71 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.openapiModifier = void 0;
const config_1 = require("./config");
const factory_1 = require("./logger/factory");
const openapi_1 = require("./openapi");
const runner_1 = require("./core/runner");
const openapiModifier = (config, forcedLogger) => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b;
const logger = forcedLogger || factory_1.LoggerFactory.createLogger({
name: 'openapi-modifier',
verbose: (_a = config.logger) === null || _a === void 0 ? void 0 : _a.verbose,
minLevel: (_b = config.logger) === null || _b === void 0 ? void 0 : _b.minLevel,
});
try {
logger.trace('Trying find config file...');
const finalConfig = (0, config_1.mergeConfigs)(logger, config_1.defaultConfig, config);
if (!(0, config_1.checkIsValidConfig)(logger, finalConfig)) {
return;
}
logger.trace(`Final openapi modifier config:`, finalConfig);
const inputPath = (finalConfig === null || finalConfig === void 0 ? void 0 : finalConfig.input) || null;
if (!inputPath) {
throw new Error('Required input field config!');
}
const outputPath = (finalConfig === null || finalConfig === void 0 ? void 0 : finalConfig.output) || null;
if (!outputPath) {
throw new Error('Required output field config!');
}
logger.trace('Reading input file...');
const inputOpenAPIFile = (0, openapi_1.readInputFile)(logger, inputPath);
logger.trace('Running...');
const outputOpenAPIFile = yield (0, runner_1.runner)(finalConfig, inputOpenAPIFile, logger);
logger.trace('Writing output file...');
(0, openapi_1.writeOutputFile)(logger, outputPath, outputOpenAPIFile);
logger.success('OK!');
}
finally {
if (!forcedLogger) {
logger.helpInfo(logger.getHelpInfo());
}
}
});
exports.openapiModifier = openapiModifier;