UNPKG

dynamodb-toolbox

Version:

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

40 lines (39 loc) 2 kB
import type { ZodLiteral } from 'zod'; import type { BooleanSchema, BooleanSchema_, NullSchema, NullSchema_, NumberSchema, NumberSchema_, StringSchema, StringSchema_ } from '../../../index.js'; import type { SchemaProps } from '../../../schema/types/schemaProps.js'; import type { Overwrite } from '../../../types/overwrite.js'; export type ZodLiteralAny = ZodLiteral<any>; export type FromZodLiteral<ZOD_SCHEMA extends ZodLiteralAny, ROOT extends boolean = true, PROPS extends SchemaProps = {}> = ZOD_SCHEMA extends ZodLiteral<infer ZOD_SCHEMA_LITERAL> ? (ZOD_SCHEMA_LITERAL extends null ? ROOT extends true ? NullSchema_<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : NullSchema<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : never) | (ZOD_SCHEMA_LITERAL extends boolean ? ROOT extends true ? BooleanSchema_<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : BooleanSchema<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : never) | (ZOD_SCHEMA_LITERAL extends number ? ROOT extends true ? NumberSchema_<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : NumberSchema<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : never) | (ZOD_SCHEMA_LITERAL extends bigint ? ROOT extends true ? NumberSchema_<Overwrite<PROPS, { big: true; enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : NumberSchema<Overwrite<PROPS, { big: true; enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : never) | (ZOD_SCHEMA_LITERAL extends string ? ROOT extends true ? StringSchema_<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : StringSchema<Overwrite<PROPS, { enum: [ZOD_SCHEMA_LITERAL]; putDefault: unknown; }>> : never) : never; export declare const fromZodLiteral: (zodLiteral: ZodLiteralAny) => NullSchema | BooleanSchema | NumberSchema | StringSchema;