UNPKG

dynamodb-toolbox

Version:

Lightweight and type-safe query builder for DynamoDB and TypeScript.

22 lines (21 loc) 1.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.anyOfZodParser = void 0; const zod_1 = require("zod"); const utils_js_1 = require("../utils.js"); const schema_js_1 = require("./schema.js"); const utils_js_2 = require("./utils.js"); const anyOfZodParser = (schema, options = {}) => { let zodFormatter; const { discriminator } = schema.props; if (discriminator !== undefined) { // LIMITATION: Does not support nested `anyOf`s for now, should change with v4: https://v4.zod.dev/v4#upgraded-zdiscriminatedunion // LIMITATION: Does not support `savedAs` attributes for now as ZodEffects are not valid discriminatedUnion options zodFormatter = zod_1.z.discriminatedUnion(discriminator, schema.elements.map(element => (0, schema_js_1.schemaZodParser)(element, { ...options, defined: true }))); } else { zodFormatter = zod_1.z.union(schema.elements.map(element => (0, schema_js_1.schemaZodParser)(element, { ...options, defined: true }))); } return (0, utils_js_2.withDefault)(schema, options, (0, utils_js_2.withOptional)(schema, options, (0, utils_js_1.withValidate)(schema, zodFormatter))); }; exports.anyOfZodParser = anyOfZodParser;