import {Class} from "../types/Class"; export class Container { static instance: Container; private instances: Map = new Map(); public set(instance: T, name: string | null = null): void { const settingName = name ?? instance.constructor.name; this.instances.set(settingName.toLowerCase(), instance); } public get(name: string): T { return this.instances.get(name.toLowerCase()); } static getInstance(): Container { if (!Container.instance) { Container.instance = new Container(); } return Container.instance; } public static get(name: string): T { return Container.instance.get(name); } }