@kubb/plugin-oas
Version:
Generator swagger
50 lines (46 loc) • 1.6 kB
JavaScript
;
var oas = require('@kubb/oas');
// src/utils/getSchemaFactory.ts
function getSchemaFactory(oas$1) {
return (schema) => {
const version = oas.isOpenApiV3_1Document(oas$1.api) ? "3.1" : "3.0";
return {
schema: oas$1.dereferenceWithRef(schema),
version
};
};
}
// src/utils/getSchemas.ts
function getSchemas({ oas, contentType, includes = ["schemas", "requestBodies", "responses"] }) {
const components = oas.getDefinition().components;
let schemas = {};
if (includes.includes("schemas")) {
schemas = {
...schemas,
...components?.schemas || {}
};
}
const requestBodies = components?.requestBodies || {};
if (includes.includes("responses")) {
const responses = components?.responses || {};
Object.entries(responses).forEach(([name, response]) => {
if (response.content && !schemas[name]) {
const firstContentType = Object.keys(response.content)[0] || "application/json";
schemas[name] = response.content?.[contentType || firstContentType]?.schema;
}
});
}
if (includes.includes("requestBodies")) {
Object.entries(requestBodies).forEach(([name, request]) => {
if (request.content && !schemas[name]) {
const firstContentType = Object.keys(request.content)[0] || "application/json";
schemas[name] = request.content?.[contentType || firstContentType]?.schema;
}
});
}
return schemas;
}
exports.getSchemaFactory = getSchemaFactory;
exports.getSchemas = getSchemas;
//# sourceMappingURL=chunk-B7KP5ZFA.cjs.map
//# sourceMappingURL=chunk-B7KP5ZFA.cjs.map