29 lines
738 B
TypeScript
29 lines
738 B
TypeScript
import { IRepositoryManager, RepositoryManager } from "../domain";
|
|
import { ISequelizeAdapter, createSequelizeAdapter } from "./sequelize";
|
|
|
|
export interface IContext {
|
|
adapter: ISequelizeAdapter;
|
|
repositoryManager: IRepositoryManager;
|
|
}
|
|
|
|
export class ContextFactory {
|
|
private static instance: ContextFactory | null = null;
|
|
|
|
public static getInstance(): IContext {
|
|
if (!ContextFactory.instance) {
|
|
ContextFactory.instance = new ContextFactory({
|
|
adapter: createSequelizeAdapter(),
|
|
repositoryManager: RepositoryManager.getInstance(),
|
|
});
|
|
}
|
|
|
|
return ContextFactory.instance.context;
|
|
}
|
|
|
|
private context: IContext;
|
|
|
|
private constructor(context: IContext) {
|
|
this.context = context;
|
|
}
|
|
}
|