@kubb/plugin-oas
Version:
Generator swagger
47 lines (44 loc) • 1.56 kB
JavaScript
import { isOpenApiV3_1Document } from '@kubb/oas';
// src/utils/getSchemaFactory.ts
function getSchemaFactory(oas) {
return (schema) => {
const version = isOpenApiV3_1Document(oas.api) ? "3.1" : "3.0";
return {
schema: oas.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;
}
export { getSchemaFactory, getSchemas };
//# sourceMappingURL=chunk-3Y4QGY6D.js.map
//# sourceMappingURL=chunk-3Y4QGY6D.js.map