Dependencies
pnpm add
class-validator class-transformer
@nestjs/config joi
pg
@nestjs/mapped-types
@nestjs/typeorm typeorm typeorm-transactional
bcrypt @nestjs/jwt
cookie-parser
passport passport-jwt passport-local
Devdependencies
pnpm add -D
@types/bcrypt @types/cookie-parser @types/passport-jwt @types/passport-local @types/multer
typeorm-transactional
TypeOrmModule.forRootAsync({
useFactory: (configService: ConfigService) => ({
type: configService.get<string>(envVariables.dbType) as 'postgres',
host: configService.get<string>(envVariables.dbHost),
port: configService.get<number>(envVariables.dbPort),
username: configService.get<string>(envVariables.dbUsername),
password: configService.get<string>(envVariables.dbPassword),
database: configService.get<string>(envVariables.dbDatabase),
entities: [Movie, MovieDetail, Director, Genre, User],
synchronize: true,
logging: true,
logger: new FormattedLogger(),
}),
inject: [ConfigService],
dataSourceFactory: async (options) => {
const dataSource = new DataSource(options);
return addTransactionalDataSource(await dataSource.initialize());
},
}),
async function bootstrap() {
initializeTransactionalContext();
...