Skip to content

Commit

Permalink
fix: separated out module definitions to avoid race condition
Browse files Browse the repository at this point in the history
  • Loading branch information
uptownhr committed Aug 17, 2023
1 parent ef587a7 commit 23fc6ae
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 10 deletions.
9 changes: 9 additions & 0 deletions apps/backend/src/app/backend.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { AppService } from './app.service';
import { AuthModule } from '@uptownhr/auth-module';
import { ConfigModule, ConfigService } from '@nestjs/config';
import configuration, { Configuration } from '../configuration/configuration';
import { LovDbModule } from '@uptownhr/lov-db';

@Module({
imports: [
Expand All @@ -28,6 +29,14 @@ import configuration, { Configuration } from '../configuration/configuration';
},
inject: [ConfigService],
}),
LovDbModule.registerAsync({
useFactory: (config: ConfigService<Configuration, true>) => {
return {
databaseURL: config.get('databaseURL', { infer: true }),
};
},
inject: [ConfigService],
}),
],
controllers: [AppController],
providers: [AppService],
Expand Down
3 changes: 2 additions & 1 deletion apps/backend/src/configuration/configuration.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export interface Configuration {
port: number;
databaseURL: string | undefined;
supertokens: {
connectionURI: string | undefined;
apiKey: string | undefined;
Expand All @@ -13,7 +14,7 @@ export interface Configuration {

export default (): Configuration => ({
port: process.env.PORT ? parseInt(process.env.PORT, 10) : 3001,

databaseURL: process.env.DATABASE_URL,
supertokens: {
connectionURI: process.env.SUPERTOKENS_CONNECTION_URI,
apiKey: process.env.SUPERTOKENS_API_KEY,
Expand Down
7 changes: 7 additions & 0 deletions libs/lov-db/src/lib/lov-db.module-definition.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { ConfigurableModuleBuilder } from '@nestjs/common';

export interface LovDbModuleConfig {
databaseURL: string;
}
export const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } =
new ConfigurableModuleBuilder<LovDbModuleConfig>().build();
10 changes: 2 additions & 8 deletions libs/lov-db/src/lib/lov-db.module.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
import { ConfigurableModuleBuilder, Module } from '@nestjs/common';
import { Module } from '@nestjs/common';
import { LovDb } from './lov-db';

export interface LovDbModuleConfig {
databaseURL: string;
}

export const { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } =
new ConfigurableModuleBuilder<LovDbModuleConfig>().build();
import { ConfigurableModuleClass } from './lov-db.configurable';

@Module({
controllers: [],
Expand Down
4 changes: 3 additions & 1 deletion libs/lov-db/src/lib/lov-db.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { Inject, Injectable, OnModuleInit } from '@nestjs/common';
import { PrismaClient } from '../generated/client';
import { LovDbModuleConfig, MODULE_OPTIONS_TOKEN } from '@uptownhr/lov-db';
import { LovDbModuleConfig, MODULE_OPTIONS_TOKEN } from './lov-db.configurable';

console.log('token', MODULE_OPTIONS_TOKEN);

@Injectable()
export class LovDb extends PrismaClient implements OnModuleInit {
Expand Down

0 comments on commit 23fc6ae

Please sign in to comment.