zod-v4-mocks
Version:
Mock generator for zod v4
81 lines (80 loc) • 1.77 kB
TypeScript
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;
}