Auto-generate default values from Zod schemas
npm install @philiprehberger/zod-defaultsAuto-generate default values, empty form states, and mock data from Zod schemas
npm install @philiprehberger/zod-defaults
Peer dependency: zod ^3.22.0
import { z } from 'zod';
import { defaults, emptyForm, mock } from '@philiprehberger/zod-defaults';
const UserSchema = z.object({
name: z.string(),
age: z.number(),
role: z.enum(['admin', 'user']),
active: z.boolean(),
});
// Generate safe defaults
defaults(UserSchema);
// → { name: '', age: 0, role: 'admin', active: false }
// Generate empty form values (numbers become undefined)
emptyForm(UserSchema);
// → { name: '', age: undefined, role: 'admin', active: false }
// Generate realistic mock data
mock(UserSchema);
// → { name: 'xkqwplmn', age: 47, role: 'user', active: true }
// Deterministic mock data with a seed
mock(UserSchema, { seed: 42 });
// → same output every time
import { z } from 'zod';
import { mockMany } from '@philiprehberger/zod-defaults';
const UserSchema = z.object({ name: z.string(), age: z.number() });
mockMany(UserSchema, 5); // → array of 5 random users
mockMany(UserSchema, 5, { seed: 42 }); // → deterministic 5 users for snapshot tests
| Function | Description |
|---|---|
defaults(schema) | Returns a value with safe defaults for every field ("", 0, false, [], etc.) |
emptyForm(schema) | Like defaults but numbers return undefined for blank form inputs |
mock(schema, options?) | Generates realistic fake data; pass { seed } for deterministic output |
mockMany(schema, count, options?) | Generate an array of count mocks; honors { seed } for deterministic output |
| Option | Type | Description |
|---|---|---|
seed | number | Optional seed for deterministic PRNG output |
npm install
npm run build
npm run typecheck
npm test
If you find this project useful: