API Reference
Everything @ackplus/nest-seeder exports, at a glance. Each entry links to a page with full signatures and examples.
Most projects only need three things: a factory (using @Factory + DataFactory), a seeder (implementing Seeder), and a config file (via defineSeederConfig). Then you run the CLI. The rest of the surface is there for advanced and programmatic use.
One import to rule them all
Everything is exported from the package root — no deep imports needed.
import {
// Factories
DataFactory,
Factory,
// Seeders
Seeder,
SeederName,
getSeederName,
// Config
defineSeederConfig,
// Module & service (advanced / programmatic)
SeederModule,
SeederService,
seeder,
} from '@ackplus/nest-seeder';TIP
You'll also want Faker for your generators:
import { faker } from '@faker-js/faker';It's passed to every @Factory generator automatically, so you rarely import it directly.
Factories
| Export | Description |
|---|---|
DataFactory | Builds factory instances from a decorated class. DataFactory.createForClass(MyFactory) returns an object with generate() and generateOne(). |
@Factory | Property decorator that declares how a single field is generated. Accepts a generator function (faker, ctx) => value or a static value, plus an optional dependsOn list for derived fields. |
import { DataFactory } from '@ackplus/nest-seeder';
const factory = DataFactory.createForClass(UserFactory);
const users = factory.generate(10); // → User[]
const one = factory.generateOne({ role: 'admin' });Seeders
| Export | Description |
|---|---|
Seeder | Interface your seeder classes implement. Requires seed(options?); drop(options?) is optional. |
@SeederName | Class decorator that pins a stable, minification-safe name used by the CLI --name flag. Recommended on every seeder. |
getSeederName | Resolves the effective name of a seeder class or instance (the @SeederName value, falling back to the class name). |
import { Seeder, SeederName, DataFactory } from '@ackplus/nest-seeder';
@SeederName('users')
export class UserSeeder implements Seeder {
async seed(): Promise<void> {
const users = DataFactory.createForClass(UserFactory).generate(10);
// persist users...
}
}Configuration
| Export | Description |
|---|---|
defineSeederConfig | Identity helper that gives full type-safety and autocomplete to your seeder.config.ts. Optional, but recommended — wrap the default-exported config object. |
import { defineSeederConfig } from '@ackplus/nest-seeder';
export default defineSeederConfig({
imports: [/* ...Nest modules */],
seeders: [UserSeeder],
});Module & service
For programmatic use — wiring seeding into an existing Nest application or test, or running it from code instead of the CLI.
| Export | Description |
|---|---|
SeederModule | Nest module. Use SeederModule.register(options) or SeederModule.forRootAsync(asyncOptions) to register your seeders and their dependencies. |
SeederService | Injectable service that drives seeding. Exposes run(), seed(), drop(), and getSeedersToRun(). |
seeder | Programmatic helper — seeder(options).run(extraOptions) runs seeders without the CLI. The CLI is preferred for everyday use. |
import { seeder } from '@ackplus/nest-seeder';
await seeder({
imports: [/* ...Nest modules */],
seeders: [UserSeeder],
}).run({ refresh: true });CLI is the recommended entry point
For day-to-day seeding, reach for the nest-seed CLI instead of wiring SeederService by hand. The programmatic API exists for tests and custom tooling.
Types
All public types are exported from the package root for use in your own signatures and helpers.
| Type | Description |
|---|---|
SeederServiceOptions | Options accepted by seed() / drop() / run(): name, refresh, dryRun, continueOnError, context, and the deprecated dummyData. |
SeederConfig | Shape of a seeder.config.ts — imports, optional providers, and seeders. Returned by defineSeederConfig. |
FactoryInstance | What DataFactory.createForClass returns: an object with generate() and generateOne(). |
FactoryOverrides | Override map passed to generate() / generateOne(). May include keys that aren't @Factory fields (e.g. a foreign key). |
FactoryValue | A static value or generator accepted by @Factory. |
FactoryValueGenerator | The generator function signature (faker, ctx) => value. |
SeederModuleOptions | Options for SeederModule.register(). |
SeederModuleAsyncOptions | Options for SeederModule.forRootAsync(). |
SeederModuleExtraOptions | Additional module-level options. |
SeederOptions | Options for the programmatic seeder() helper. |
SeederRunner | The object returned by seeder(), exposing run(). |
SeederOptionsFactory | Factory interface for providing module options asynchronously. |
import type {
SeederServiceOptions,
SeederConfig,
FactoryInstance,
FactoryOverrides,
FactoryValue,
FactoryValueGenerator,
SeederModuleOptions,
SeederModuleAsyncOptions,
SeederModuleExtraOptions,
SeederOptions,
SeederRunner,
SeederOptionsFactory,
} from '@ackplus/nest-seeder';Next steps
- New here? Start with Getting Started.
- Learn the building blocks: Factories and Seeders.
- Run it: the CLI reference.
- Coming from v1? See the Migration guide.