UNPKG

@standard-community/standard-openapi

Version:

[![npm version](https://img.shields.io/npm/v/@standard-community/standard-openapi.svg)](https://npmjs.org/package/@standard-community/standard-openapi "View this project on NPM") [![npm downloads](https://img.shields.io/npm/dm/@standard-community/standard

48 lines (42 loc) 1.59 kB
'use strict'; 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;