UNPKG

dynamodb-toolbox

Version:

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

26 lines (25 loc) 1.02 kB
import { z } from 'zod'; import { withValidate } from '../utils.js'; import { withDefault, withEncoding, withOptional } from './utils.js'; export 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 ? z.union([ z.literal(enumHead), z.literal(enumTailHead), ...enumTailTail.map(val => z.literal(val)) ]) : z.literal(enumHead); } else { const { big = false } = props; zodFormatter = big ? z.union([z.number(), z.bigint()]) : z.number(); } return withEncoding(schema, options, withDefault(schema, options, withOptional(schema, options, withValidate(schema, zodFormatter)))); };