UNPKG

openapi-metadata

Version:

Auto-Generate OpenAPI specifications from Typescript decorators

46 lines (42 loc) 1.56 kB
'use strict'; const operation$1 = require('./operation.cjs'); require('deepmerge'); const operation = require('../metadata/operation.cjs'); const exclude = require('../metadata/exclude.cjs'); const extraModels = require('../metadata/extra-models.cjs'); const type = require('../loaders/type.cjs'); async function generatePaths(context, controllers) { const paths = {}; for (const controller of controllers) { const target = controller.prototype; const keys = Object.getOwnPropertyNames(target); const extraModels$1 = extraModels.ExtraModelsMetadataStorage.getMetadata(target); await Promise.all(extraModels$1.map((m) => type.loadType(context, { type: m }))); for (const key of keys) { const metadata = operation.OperationMetadataStorage.getMetadata(target, key, true); if (!metadata) { continue; } if (!metadata.path || !metadata.methods) { continue; } const excludeController = exclude.ExcludeMetadataStorage.getMetadata(target); if (excludeController === true) { continue; } for (const method of metadata.methods) { const excludeOperation = exclude.ExcludeMetadataStorage.getMetadata(target, key); if (excludeOperation === true) { continue; } paths[metadata.path] = { ...paths[metadata.path], [method]: await operation$1.generateOperation(context, controller, key, metadata) }; } } } return paths; } exports.generatePaths = generatePaths; //# sourceMappingURL=paths.cjs.map