UNPKG

@kubb/plugin-oas

Version:

OpenAPI Specification (OAS) plugin for Kubb, providing core functionality for parsing and processing OpenAPI/Swagger schemas for code generation.

35 lines (33 loc) 1.08 kB
import { resolve } from 'path'; import { URLPath } from '@kubb/core/utils'; import { Oas, parse, merge } from '@kubb/oas'; import yaml from '@stoplight/yaml'; // src/utils/parseFromConfig.ts function parseFromConfig(config, oasClass = Oas) { if ("data" in config.input) { if (typeof config.input.data === "object") { const api2 = JSON.parse(JSON.stringify(config.input.data)); return parse(api2, { oasClass }); } try { const api2 = yaml.parse(config.input.data); return parse(api2, { oasClass }); } catch (_e) { } const api = JSON.parse(JSON.stringify(config.input.data)); return parse(api, { oasClass }); } if (Array.isArray(config.input)) { return merge( config.input.map((input) => input.path), { oasClass } ); } if (new URLPath(config.input.path).isURL) { return parse(config.input.path, { oasClass }); } return parse(resolve(config.root, config.input.path), { oasClass }); } export { parseFromConfig }; //# sourceMappingURL=chunk-G3FDK7YW.js.map //# sourceMappingURL=chunk-G3FDK7YW.js.map