@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
JavaScript
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