@kubb/plugin-oas
Version:
OpenAPI Specification (OAS) plugin for Kubb, providing core functionality for parsing and processing OpenAPI/Swagger schemas for code generation.
41 lines (36 loc) • 1.29 kB
JavaScript
;
var path = require('path');
var utils = require('@kubb/core/utils');
var oas = require('@kubb/oas');
var yaml = require('@stoplight/yaml');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var yaml__default = /*#__PURE__*/_interopDefault(yaml);
// src/utils/parseFromConfig.ts
function parseFromConfig(config, oasClass = oas.Oas) {
if ("data" in config.input) {
if (typeof config.input.data === "object") {
const api2 = JSON.parse(JSON.stringify(config.input.data));
return oas.parse(api2, { oasClass });
}
try {
const api2 = yaml__default.default.parse(config.input.data);
return oas.parse(api2, { oasClass });
} catch (_e) {
}
const api = JSON.parse(JSON.stringify(config.input.data));
return oas.parse(api, { oasClass });
}
if (Array.isArray(config.input)) {
return oas.merge(
config.input.map((input) => input.path),
{ oasClass }
);
}
if (new utils.URLPath(config.input.path).isURL) {
return oas.parse(config.input.path, { oasClass });
}
return oas.parse(path.resolve(config.root, config.input.path), { oasClass });
}
exports.parseFromConfig = parseFromConfig;
//# sourceMappingURL=chunk-7RFNM43R.cjs.map
//# sourceMappingURL=chunk-7RFNM43R.cjs.map