UNPKG

openapi-modifier

Version:

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

44 lines (43 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configSchema = void 0; const zod_1 = require("zod"); const each_operation_1 = require("../common/utils/iterators/each-operation"); const config_1 = require("../common/config"); const configSchema = zod_1.z .object({ ignore: zod_1.z.array(config_1.operationIdConfigSchema), }) .strict(); exports.configSchema = configSchema; const processor = { configSchema, defaultConfig: { ignore: [], }, processDocument: (openAPIFile, config, logger) => { const ignoreOperationIds = config.ignore; const usageIgnoreOperationIds = []; (0, each_operation_1.forEachOperation)(openAPIFile, ({ operationSchema }) => { if (operationSchema === null || operationSchema === void 0 ? void 0 : operationSchema.operationId) { const ignoreOperationIdIndex = ignoreOperationIds.indexOf(operationSchema.operationId); if (ignoreOperationIdIndex === -1) { delete operationSchema.operationId; } else { usageIgnoreOperationIds[ignoreOperationIdIndex] = (usageIgnoreOperationIds[ignoreOperationIdIndex] || 0) + 1; } } }); if (ignoreOperationIds === null || ignoreOperationIds === void 0 ? void 0 : ignoreOperationIds.length) { const notUsedIgnoreOperationIds = ignoreOperationIds.filter((_, index) => { return !usageIgnoreOperationIds[index]; }); if (notUsedIgnoreOperationIds === null || notUsedIgnoreOperationIds === void 0 ? void 0 : notUsedIgnoreOperationIds.length) { logger.warning(`Not used ignore operation id: ${notUsedIgnoreOperationIds.join(', ')}`); } } return openAPIFile; }, }; exports.default = processor;