Skip to content

Commit d8fd918

Browse files
committed
load dependency for IDatabaseConnector
1 parent f016225 commit d8fd918

File tree

5 files changed

+37
-1
lines changed

5 files changed

+37
-1
lines changed

Projects/BooksLibrary/src/config/configuration.manager.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ export class ConfigurationManager {
1515
return ConfigurationManager._config.Database.Flavour;
1616
};
1717

18+
public static DatabaseType = (): DatabaseType => {
19+
return ConfigurationManager._config.Database.Type;
20+
};
21+
1822
public static loadConfigurations = (): void => {
1923
ConfigurationManager._config = {
2024
BaseUrl: process.env.BASE_URL,
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { ConfigurationManager } from 'config/configuration.manager';
2+
import { DependencyContainer } from 'tsyringe';
3+
import { SQLInjector } from './sql/sql.injector';
4+
5+
export class DatabaseInjector {
6+
static registerInjections(container: DependencyContainer) {
7+
//
8+
const databaseType = ConfigurationManager.DatabaseType();
9+
if (databaseType === 'SQL') {
10+
SQLInjector.registerInjections(container);
11+
}
12+
}
13+
}
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
1-
todo
1+
import { DependencyContainer } from 'tsyringe';
2+
import { DatabaseConnector_Sequelize } from './sequelize/database.connector.sequelize';
3+
4+
export class SQLInjector {
5+
static registerInjections(container: DependencyContainer) {
6+
container.register('IDatabaseConnector', DatabaseConnector_Sequelize);
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { DatabaseInjector } from 'database/database.injector';
2+
import { DependencyContainer } from 'tsyringe';
3+
4+
export class Injector {
5+
static registerInjections(container: DependencyContainer) {
6+
DatabaseInjector.registerInjections(container);
7+
}
8+
}

Projects/BooksLibrary/src/startup/loader.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Authenticator } from 'auth/authenticator';
33
import { Logger } from '../common/logger';
44
import { Authorizer } from 'auth/authorizer';
55
import { DatabaseConnector } from 'database/database.connector';
6+
import { Injector } from './injector';
67

78
export class Loader {
89
private static _container: DependencyContainer = container;
@@ -32,6 +33,9 @@ export class Loader {
3233
public static init = async (): Promise<boolean> => {
3334
try {
3435
//Register injections here...
36+
37+
Injector.registerInjections(container);
38+
3539
Loader._databaseConnector = container.resolve(DatabaseConnector);
3640

3741
return true;

0 commit comments

Comments
 (0)