1.2.0 • Published 3 years ago

@birdbrain/nest-typeorm-seeder v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

@birdbrain/nest-typeorm-seeder

Be aware

This project is very much in development. Expect breaking changes between minor versions.

Table of contents

Installation

npm install @birdbrain/nest-typeorm-seeder

Nest and TypeORM are required.

Usage

Standalone

Create a standalone Nest application explicitly for seeding. Remember to import database settings, either by importing a module as in the example below or using TypeOrmModule from @nestjs/typeorm.

seeder.ts

import { NestTypeOrmSeeder } from '@birdbrain/nest-typeorm-seeder';

NestTypeOrmSeeder.runModule({
  imports: [DatabaseModule, UserModule, PostModule],
  providers: [UserSeeder, PostSeeder],
});

package.json

{
  "scripts": {
    "seed": "ts-node -r tsconfig-paths/register seeding.ts"
  }
}

runModule() accepts the same parameters as a normal Nest module.

Module

Create and import a module to seed on application start up. You don't have to import the database settings directly, just make sure they are somehow available, e.g. by importing them in the entry module alongside the seeder module.

seeder.module.ts

import { NestTypeOrmSeeder } from '@birdbrain/nest-typeorm-seeder';

export const SeederModule = NestTypeOrmSeeder.createModule({
  imports: [UserModule, PostModule],
  providers: [UserSeeder, PostSeeder],
});

app.module.ts

import { Module } from '@nestjs/common';
import { SeederModule } from './seeder.module';

@Module({
  imports: [DatabaseModule, SeederModule],
})
export class AppModule {}

createModule() accepts the same parameters as a normal Nest module.