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

36 lines
879 B
TypeScript

import { registerAs } from '@nestjs/config';
import { Knex } from 'knex';
import { join } from 'path';
export const getKnex = (
database: string,
directory: string,
loadExtensions = ['.js'],
) =>
({
client: 'pg',
connection: {
port: 5432,
host: String(process.env.POSTGRES_HOST),
user: String(process.env.POSTGRES_USER),
password: String(process.env.POSTGRES_PASSWORD),
database,
},
migrations: {
directory: join(directory, 'database', 'migrations'),
extension: 'ts',
loadExtensions,
},
seeds: {
directory: join(directory, 'database', 'seeds'),
extension: 'ts',
loadExtensions,
},
} as Knex.Config);
export const makeKnex = (
database: string,
directory: string,
loadExtensions?: string[],
) => registerAs('knex', () => getKnex(database, directory, loadExtensions));