Presupuestador_web/server/src/contexts/common/infrastructure/ContextFactory.ts
2024-09-23 17:56:15 +02:00

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;
}
}