UNPKG

@standard-community/standard-json

Version:

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

55 lines (49 loc) 1.93 kB
'use strict'; 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;