UNPKG

routing-controllers-openapi-extended

Version:

Runtime Swagger v2 / OpenAPI v2 specification generation for routing-controllers

41 lines 3.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _ = require("lodash"); const storage_1 = require("../storage"); const common_1 = require("./common"); const TRANSFORM_REQUIRED_PROPERTIES = new Set(['statusCode', 'schema']); function parseResponseEntry(response) { const responseObject = Object.keys(response).reduce((acc, key) => { if (!TRANSFORM_REQUIRED_PROPERTIES.has(key)) { acc[key] = response[key]; } return acc; }, {}); if (response.schema) { responseObject.schema = common_1.resolveSchema(response.schema); } return { [response.statusCode]: responseObject }; } function getStatusCode(route) { const successMeta = _.find(route.responseHandlers, { type: 'success-code' }); return successMeta ? successMeta.value + '' : '200'; } exports.getStatusCode = getStatusCode; function getResponses(route) { const { target, method } = route.action; const successStatus = getStatusCode(route); const responseEntries = storage_1.getStorage().filterResponseEntriesByTarget(target, method); const customResponses = responseEntries.reduce((acc, response) => { return _.merge(acc, parseResponseEntry(response)); }, {}); const defaultResponse = { [successStatus]: { description: 'Successful response' } }; return _.merge(defaultResponse, customResponses); } exports.getResponses = getResponses; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2VyL3Jlc3BvbnNlUGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNEJBQTZCO0FBQzdCLHdDQUF3QztBQUV4QyxxQ0FBeUM7QUFFekMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBRXhFLFNBQVMsa0JBQWtCLENBQUMsUUFBOEI7SUFDdEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDN0QsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDLEVBQUUsRUFBNEIsQ0FBQyxDQUFDO0lBRWpDLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNqQixjQUFjLENBQUMsTUFBTSxHQUFHLHNCQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzFEO0lBRUQsT0FBTztRQUNILENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFHLGNBQWM7S0FDekMsQ0FBQTtBQUNMLENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsS0FBWTtJQUN0QyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFBO0lBQzVFLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ3ZELENBQUM7QUFIRCxzQ0FHQztBQUVELFNBQWdCLFlBQVksQ0FBQyxLQUFZO0lBQ3JDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDMUMsTUFBTSxlQUFlLEdBQTJCLG9CQUFVLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0csTUFBTSxlQUFlLEdBQVEsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRTtRQUNsRSxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ04sTUFBTSxlQUFlLEdBQUc7UUFDcEIsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNiLFdBQVcsRUFBRSxxQkFBcUI7U0FDckM7S0FDSixDQUFBO0lBRUQsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBZEQsb0NBY0MifQ==