UNPKG

dynamodb-toolbox

Version:

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

25 lines (24 loc) 939 B
import { z } from 'zod'; import { withValidate } from '../utils.js'; import { withDefault, withEncoding, withOptional } from './utils.js'; export const booleanZodParser = (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 { zodFormatter = z.boolean(); } return withEncoding(schema, options, withDefault(schema, options, withOptional(schema, options, withValidate(schema, zodFormatter)))); };