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