openapi-typescript
Version:
Generate TypeScript types from Swagger OpenAPI specs
35 lines • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformOperationObj = void 0;
const utils_1 = require("../utils");
const parameters_1 = require("./parameters");
const request_1 = require("./request");
const responses_1 = require("./responses");
function transformOperationObj(operation, options) {
const { pathItem = {}, globalParameters, ...ctx } = options;
const readonly = utils_1.tsReadonly(ctx.immutableTypes);
let output = "";
if (operation.parameters || pathItem.parameters) {
const parameters = (pathItem.parameters || []).concat(operation.parameters || []);
output += ` ${readonly}parameters: {\n ${parameters_1.transformParametersArray(parameters, {
...ctx,
globalParameters,
})}\n }\n`;
}
if (operation.responses) {
output += ` ${readonly}responses: {\n ${responses_1.transformResponsesObj(operation.responses, ctx)}\n }\n`;
}
if (operation.requestBody) {
if (utils_1.isRef(operation.requestBody)) {
output += ` ${readonly}requestBody: ${utils_1.transformRef(operation.requestBody.$ref)};\n`;
}
else {
if (operation.requestBody.description)
output += utils_1.comment(operation.requestBody.description);
output += ` ${readonly}requestBody: {\n ${request_1.transformRequestBodyObj(operation.requestBody, ctx)} }\n`;
}
}
return output;
}
exports.transformOperationObj = transformOperationObj;
//# sourceMappingURL=operation.js.map