UNPKG

dynamodb-toolbox

Version:

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

30 lines (29 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.numberZodParser = void 0; const zod_1 = require("zod"); const utils_js_1 = require("../utils.js"); const utils_js_2 = require("./utils.js"); const numberZodParser = (schema, options = {}) => { var _a; let zodFormatter; const { props } = schema; const [enumHead, ...enumTail] = (_a = props.enum) !== null && _a !== void 0 ? _a : []; if (enumHead !== undefined) { const [enumTailHead, ...enumTailTail] = enumTail; zodFormatter = enumTailHead !== undefined ? zod_1.z.union([ zod_1.z.literal(enumHead), zod_1.z.literal(enumTailHead), ...enumTailTail.map(val => zod_1.z.literal(val)) ]) : zod_1.z.literal(enumHead); } else { const { big = false } = props; zodFormatter = big ? zod_1.z.union([zod_1.z.number(), zod_1.z.bigint()]) : zod_1.z.number(); } return (0, utils_js_2.withEncoding)(schema, options, (0, utils_js_2.withDefault)(schema, options, (0, utils_js_2.withOptional)(schema, options, (0, utils_js_1.withValidate)(schema, zodFormatter)))); }; exports.numberZodParser = numberZodParser;