UNPKG

parse-openapi

Version:

OpenAPI v3 parser

56 lines (55 loc) 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperationParameters = void 0; const getOperationParameter_1 = require("./getOperationParameter"); const getRef_1 = require("./getRef"); const getOperationParameters = (openApi, parameters) => { const operationParameters = { imports: [], parameters: [], parametersPath: [], parametersQuery: [], parametersForm: [], parametersCookie: [], parametersHeader: [], parametersBody: null, // Not used in V3 -> @see requestBody }; // Iterate over the parameters parameters.forEach(parameterOrReference => { const parameterDef = (0, getRef_1.getRef)(openApi, parameterOrReference); const parameter = (0, getOperationParameter_1.getOperationParameter)(openApi, parameterDef); // We ignore the "api-version" param, since we do not want to add this // as the first / default parameter for each of the service calls. if (parameter.prop !== 'api-version') { switch (parameterDef.in) { case 'path': operationParameters.parametersPath.push(parameter); operationParameters.parameters.push(parameter); operationParameters.imports.push(...parameter.imports); break; case 'query': operationParameters.parametersQuery.push(parameter); operationParameters.parameters.push(parameter); operationParameters.imports.push(...parameter.imports); break; case 'formData': operationParameters.parametersForm.push(parameter); operationParameters.parameters.push(parameter); operationParameters.imports.push(...parameter.imports); break; case 'cookie': operationParameters.parametersCookie.push(parameter); operationParameters.parameters.push(parameter); operationParameters.imports.push(...parameter.imports); break; case 'header': operationParameters.parametersHeader.push(parameter); operationParameters.parameters.push(parameter); operationParameters.imports.push(...parameter.imports); break; } } }); return operationParameters; }; exports.getOperationParameters = getOperationParameters;