@nestdevx/seeder
v1.0.0
Published
Seeder module for multi-tenant NestJS applications.
Downloads
4
Maintainers
Readme
@nestdevx/seeder
Seeder module for multi-tenant NestJS applications. Provides utilities to seed initial data for tenants, users, roles, and highly customizable.
Features
- Multi-tenant data seeding
- Seed users, roles, permissions, and other entities
- CLI and programmatic usage
- Integration with @nestdevx/database and @nestdevx/user
Installation
npm install @nestdevx/seeder
# or
yarn add @nestdevx/seeder
# or
pnpm add @nestdevx/seederUsage
1. Import the Module
import { SeederModule } from '@nestdevx/seeder';
@Module({
imports: [SeederModule],
})
export class AppModule {}2. Use the SeederService
import { SeederService } from '@nestdevx/seeder';
@Injectable()
export class SomeService {
constructor(private readonly seederService: SeederService) {}
async seedRoles() {
await this.seederService.seedRoles();
}
}3. Seed.ts file
import { SeederModule, SeederService } from '@app/seeder';
import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
async function bootstrap() {
const appCtx = await NestFactory.createApplicationContext(SeederModule);
try {
const seeder = await appCtx
.select(SeederModule)
.resolve(SeederService);
await seeder.seedAdminUser();
await seeder.seedRoles();
await seeder.seedPermissions();
await seeder.seedRolePermissions();
Logger.log('✅ seedAdminUser completed');
Logger.log('✅ seedRoles completed');
Logger.log('✅ seedPermissions completed');
Logger.log('✅ seedRolePermissions completed');
} catch (err) {
Logger.error('❌ seeding failed', err);
process.exit(1);
} finally {
await appCtx.close();
Logger.log('✅ Application context closed');
process.exit(0);
}
}
bootstrap().catch(err => {
Logger.error('❌ seeding failed', err);
process.exit(1);
});
3. CLI Usage
You can also run the seeder via a script:
npx ts-node scripts/seed.tsAPI Reference
SeederService.seedAdminUser()– Seed all dataSeederService.seedRoles()– Seed rolesSeederService.seedPermissions()– Seed rolesSeederService.seedRolePermissions()– Seed roles
License
MIT
