@autobe/agent
Version:
AI backend server code generator
51 lines • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.invertOpenApiDocument = invertOpenApiDocument;
const openapi_1 = require("@samchon/openapi");
function invertOpenApiDocument(document) {
var _a, _b;
const app = openapi_1.HttpMigration.application(document);
return {
operations: app.routes
.filter((r) => r.query === null)
.map((r) => {
var _a, _b, _c, _d, _e, _f;
return ({
specification: empty("specification"),
method: r.method,
path: r.path,
summary: (_a = r.operation().summary) !== null && _a !== void 0 ? _a : empty("summary"),
description: (_b = r.operation().description) !== null && _b !== void 0 ? _b : empty("description"),
parameters: r.parameters.map((p) => {
var _a;
return ({
name: p.name,
description: (_a = p.parameter().description) !== null && _a !== void 0 ? _a : empty("description"),
schema: p.schema,
});
}),
requestBody: ((_c = r.body) === null || _c === void 0 ? void 0 : _c.type) === "application/json" &&
openapi_1.OpenApiTypeChecker.isReference(r.body.schema)
? {
description: (_d = r.body.description()) !== null && _d !== void 0 ? _d : empty("description"),
typeName: r.body.schema.$ref.split("/").pop(),
}
: null,
responseBody: ((_e = r.success) === null || _e === void 0 ? void 0 : _e.type) === "application/json" &&
openapi_1.OpenApiTypeChecker.isReference(r.success.schema)
? {
description: (_f = r.success.description()) !== null && _f !== void 0 ? _f : empty("description"),
typeName: r.success.schema.$ref.split("/").pop(),
}
: null,
});
}),
components: {
schemas: ((_b = (_a = document.components) === null || _a === void 0 ? void 0 : _a.schemas) !== null && _b !== void 0 ? _b : {}),
},
};
}
function empty(key) {
return `Describe ${key} as much as possible with clear and concise words.`;
}
//# sourceMappingURL=invertOpenApiDocument.js.map