UNPKG

@foal/core

Version:

Full-featured Node.js framework, with no complexity

82 lines (81 loc) 3.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getApiComponents = void 0; const utils_1 = require("../../routes/utils"); function getApiComponents(controllerClass, controller, propertyKey) { const components = {}; const callbacks = (0, utils_1.getMetadata)('api:components:callbacks', controllerClass, propertyKey); if (callbacks) { components.callbacks = {}; for (const key in callbacks) { const callback = callbacks[key]; components.callbacks[key] = typeof callback === 'function' ? callback(controller) : callback; } } const examples = (0, utils_1.getMetadata)('api:components:examples', controllerClass, propertyKey); if (examples) { components.examples = {}; for (const key in examples) { const example = examples[key]; components.examples[key] = typeof example === 'function' ? example(controller) : example; } } const headers = (0, utils_1.getMetadata)('api:components:headers', controllerClass, propertyKey); if (headers) { components.headers = {}; for (const key in headers) { const header = headers[key]; components.headers[key] = typeof header === 'function' ? header(controller) : header; } } const links = (0, utils_1.getMetadata)('api:components:links', controllerClass, propertyKey); if (links) { components.links = {}; for (const key in links) { const link = links[key]; components.links[key] = typeof link === 'function' ? link(controller) : link; } } const parameters = (0, utils_1.getMetadata)('api:components:parameters', controllerClass, propertyKey); if (parameters) { components.parameters = {}; for (const key in parameters) { const parameter = parameters[key]; components.parameters[key] = typeof parameter === 'function' ? parameter(controller) : parameter; } } const requestBodies = (0, utils_1.getMetadata)('api:components:requestBodies', controllerClass, propertyKey); if (requestBodies) { components.requestBodies = {}; for (const key in requestBodies) { const requestBody = requestBodies[key]; components.requestBodies[key] = typeof requestBody === 'function' ? requestBody(controller) : requestBody; } } const responses = (0, utils_1.getMetadata)('api:components:responses', controllerClass, propertyKey); if (responses) { components.responses = {}; for (const key in responses) { const response = responses[key]; components.responses[key] = typeof response === 'function' ? response(controller) : response; } } const schemas = (0, utils_1.getMetadata)('api:components:schemas', controllerClass, propertyKey); if (schemas) { components.schemas = {}; for (const key in schemas) { const schema = schemas[key]; components.schemas[key] = typeof schema === 'function' ? schema(controller) : schema; } } const securitySchemes = (0, utils_1.getMetadata)('api:components:securitySchemes', controllerClass, propertyKey); if (securitySchemes) { components.securitySchemes = {}; for (const key in securitySchemes) { const scheme = securitySchemes[key]; components.securitySchemes[key] = typeof scheme === 'function' ? scheme(controller) : scheme; } } return components; } exports.getApiComponents = getApiComponents;