UNPKG

zod-v4-mocks

Version:
81 lines (80 loc) 1.77 kB
import { allLocales, type Faker, type Randomizer } from '@faker-js/faker'; import type { z } from 'zod/v4'; export type { Faker, Randomizer } from '@faker-js/faker'; export type LocaleType = keyof typeof allLocales; /** * @package */ export type GeneraterOptions = { faker: Faker; config: MockConfig; customGenerator?: CustomGeneratorType; registry: z.core.$ZodRegistry<z.core.GlobalMeta> | null; valueStore?: Map<string, unknown[]>; arrayIndexes: number[]; pinnedHierarchy: Map<string, number>; lazyDepth?: number; }; export type CustomGeneratorType = (schema: z.core.$ZodType, options: GeneraterOptions) => unknown; export interface MockConfig { /** * @default [en, base] */ locale?: LocaleType | LocaleType[]; /** * @default generateMersenne53Randomizer() */ randomizer?: Randomizer; /** * @default 1 */ seed: number; /** * @default { min: 1, max: 3 } */ array: { min: number; max: number; }; /** * @default { min: 1, max: 3 } */ map: { min: number; max: number; }; /** * @default { min: 1, max: 3 } */ set: { min: number; max: number; }; /** * @default { min: 1, max: 3 } */ record: { min: number; max: number; }; /** * @default 0.5 */ optionalProbability: number; /** * @default 0.5 */ nullableProbability: number; /** * @default 0.5 */ defaultProbability: number; /** * @default 5 */ lazyDepthLimit: number; /** * @description meta's attribute name which is used to generate consistent property value */ consistentKey?: string; }