web-service/libs/shared/src/database/make-typeorm.ts

27 lines
751 B
TypeScript

import { ConfigModule, ConfigService, registerAs } from '@nestjs/config';
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';
export const makeTypeOrm = (database: string) =>
registerAs(
'typeorm',
() =>
({
type: 'postgres',
port: 5432,
host: String(process.env.POSTGRES_HOST),
username: String(process.env.POSTGRES_USER),
password: String(process.env.POSTGRES_PASSWORD),
database,
} as TypeOrmModuleOptions),
);
export const getTypeOrm = (entities?: any[]) =>
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
...config.get('typeorm'),
entities,
}),
});