🔒
Type-Safe Mock Generation
Generate mock data that perfectly matches your TypeScript interfaces. Get full IntelliSense support and compile-time type checking for all your factories.
ðŸŽ
Powered by Faker.js
Built on top of the popular Faker.js library, giving you access to realistic fake data for names, addresses, dates, and more out of the box.
âš¡
Schema Integration
Optional Zod schema integration allows you to generate mock data directly from your runtime validation schemas with zero additional configuration.
See It In Action
- Basic Usage
- With Zod Schemas
- Factory Composition
import { Factory } from 'interface-forge';
interface User {
id: string;
name: string;
email: string;
age: number;
}
const userFactory = new Factory<User>((factory) => ({
id: factory.string.uuid(),
name: factory.person.fullName(),
email: factory.internet.email(),
age: factory.number.int({ min: 18, max: 65 }),
}));
// Generate a single user
const user = userFactory.build();
// Generate multiple users
const users = userFactory.batch(10);
import { z } from 'zod/v4';
import { ZodFactory } from 'interface-forge/zod';
const userSchema = z.object({
id: z.string().uuid(),
name: z.string().min(2),
email: z.string().email(),
age: z.number().int().min(18).max(65),
});
const userFactory = new ZodFactory(userSchema);
// Automatically generates valid data
const user = userFactory.build();
const addressFactory = new Factory<Address>((factory) => ({
street: factory.location.streetAddress(),
city: factory.location.city(),
country: factory.location.country(),
}));
const userWithAddressFactory = new Factory<UserWithAddress>((factory) => ({
...userFactory.build(),
address: addressFactory.build(),
registeredAt: factory.date.past(),
}));
// Compose factories for complex data structures
const userWithAddress = userWithAddressFactory.build();