@standard-community/standard-json
Version:
[](https://npmjs.org/package/@standard-community/standard-json "View this project on NPM") [
55 lines (49 loc) • 1.93 kB
JavaScript
var quansync = require('quansync');
var utils = require('./utils-CeR2367j.cjs');
function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, default: e }); }
const getToJsonSchemaFn = async (vendor) => {
const cached = utils.validationMapper.get(vendor);
if (cached) {
return cached;
}
let vendorFnPromise;
switch (vendor) {
case "arktype":
vendorFnPromise = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./vendors/arktype.cjs')); })).default();
break;
case "effect":
vendorFnPromise = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./vendors/effect.cjs')); })).default();
break;
case "valibot":
vendorFnPromise = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./vendors/valibot.cjs')); })).default();
break;
case "zod":
vendorFnPromise = (await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./vendors/zod.cjs')); })).default();
break;
default:
throw new utils.UnsupportedVendorError(vendor);
}
const vendorFn = await vendorFnPromise;
utils.validationMapper.set(vendor, vendorFn);
return vendorFn;
};
const toJsonSchema = quansync.quansync({
sync: (schema, options) => {
const vendor = schema["~standard"].vendor;
const fn = utils.validationMapper.get(vendor);
if (!fn) {
throw new utils.UnsupportedVendorError(vendor);
}
return fn(schema, options);
},
async: async (schema, options) => {
const fn = await getToJsonSchemaFn(schema["~standard"].vendor);
return fn(schema, options);
}
});
function loadVendor(vendor, fn) {
utils.validationMapper.set(vendor, fn);
}
exports.loadVendor = loadVendor;
exports.toJsonSchema = toJsonSchema;
;