@standard-community/standard-openapi
Version:
[](https://npmjs.org/package/@standard-community/standard-openapi "View this project on NPM") [ • 1.59 kB
JavaScript
var utils = require('./utils-DibZ0_jm.cjs');
function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, default: e }); }
const getToOpenAPISchemaFn = async (vendor) => {
const cached = utils.openapiVendorMap.get(vendor);
if (cached) {
return cached;
}
let vendorFn;
switch (vendor) {
case "valibot":
vendorFn = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./vendors/valibot.cjs')); })).default();
break;
case "zod":
vendorFn = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./vendors/zod.cjs')); })).default();
break;
case "arktype":
case "effect":
vendorFn = (await Promise.resolve().then(function () { return require('./default-DyJyARWC.cjs'); })).default();
break;
default:
throw new Error(
utils.errorMessageWrapper(`Unsupported schema vendor "${vendor}".`)
);
}
utils.openapiVendorMap.set(vendor, vendorFn);
return vendorFn;
};
const toOpenAPISchema = async (schema, context = {}) => {
const fn = await getToOpenAPISchemaFn(schema["~standard"].vendor);
const { components = {}, options } = context;
const _schema = await fn(schema, { components, options });
return {
schema: _schema,
components: Object.keys(components).length > 0 ? components : void 0
};
};
function loadVendor(vendor, fn) {
utils.openapiVendorMap.set(vendor, fn);
}
exports.loadVendor = loadVendor;
exports.toOpenAPISchema = toOpenAPISchema;
;