UNPKG

@kubb/plugin-oas

Version:
47 lines (44 loc) 1.56 kB
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