UNPKG

swagger-route-validator

Version:

The fastest openapi validation middleware

19 lines (18 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.validateResponse = validateResponse; const valueValidator_1 = require("./valueValidator"); function validateResponse(routeSpec, response, res, spec = {}) { const errors = []; if (!routeSpec.responses[res.statusCode] && !routeSpec.responses['default']) { throw new Error(`Response status code "${res.statusCode}" not present in spec for this route and no default responses could be found.`); } const responseObj = routeSpec.responses[res.statusCode] || routeSpec.responses[(`${res.statusCode}`[0]) + 'XX'] || routeSpec.responses['default']; (0, valueValidator_1.validateValue)('', response, routeSpec[res.req?.method?.toLowerCase()] || responseObj.content ? responseObj.content['application/json'] : responseObj, (0, valueValidator_1.set)(response), errors, spec); if (responseObj.headers) { for (let h in responseObj.headers) { (0, valueValidator_1.validateValue)(`header.${h}`, res.get(h), { name: h, ...responseObj.headers[h] }, () => { }, errors, {}); } } return errors; }