Presupuestador_web/server/src/contexts/common/infrastructure/ContextFactory.ts

29 lines
738 B
TypeScript
Raw Normal View History

2024-04-23 15:29:38 +00:00
import { IRepositoryManager, RepositoryManager } from "../domain";
import { ISequelizeAdapter, createSequelizeAdapter } from "./sequelize";
2024-07-03 10:27:58 +00:00
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;
}
}