UNPKG

no-hassle

Version:

Makes Node.js route handling easy with support for [Joi schema](https://github.com/hapijs/joi) validation and automatic Swagger generation based on these schema definitions. Uses Expressjs routing mechanism.

58 lines (57 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getParameters = void 0; const j2s = require('joi-to-swagger'); const definition_1 = require("./definition"); const getParameters = (swagger, input) => { if (!input) return []; const { body, query, params, headers } = input; const result = []; if (body) { const definition = (0, definition_1.getDefinition)(swagger, body, 'Input'); result.push({ in: 'body', name: definition, required: true, schema: { $ref: `#/definitions/${definition}`, }, }); } if (query) { const { properties, required = [] } = j2s(query).swagger; Object.keys(properties).forEach((key) => { result.push({ in: 'query', name: key, required: required.includes(key), ...properties[key], }); }); } if (params) { const { properties } = j2s(params).swagger; Object.keys(properties).forEach((key) => { result.push({ in: 'path', name: key, required: true, ...properties[key], }); }); } if (headers) { const { properties, required = [] } = j2s(headers).swagger; Object.keys(properties).forEach((key) => { result.push({ in: 'header', name: key, required: required.includes(key), ...properties[key], }); }); } return result; }; exports.getParameters = getParameters;