parse-openapi
Version:
OpenAPI v3 parser
56 lines (55 loc) • 2.59 kB
JavaScript
;
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;