import 'reflect-metadata'; import { Container, interfaces } from 'inversify'; import { MainAppWindow } from '../modules/app-window/main-app-window'; import { Dialog } from '../modules/dialog/dialog'; import { I18nTranslator } from '../modules/i18n/i18n-translator'; import { Logger } from '../modules/logger/logger'; import { NhentaiApi } from '../modules/nhentai/nhentai-api'; import '../modules/nhentai/nhentai-ipc-controller'; import { NhentaiAppWindow } from '../modules/nhentai/nhentai-app-window'; import { NhentaiSourceGetter } from '../modules/nhentai/nhentai-source-getter'; import { Store } from '../modules/store/store'; import '../modules/entity-api/entity-api-ipc-controller'; import BindingToSyntax = interfaces.BindingToSyntax; export const container = { original: new Container({ defaultScope: 'Singleton', skipBaseClassChecks: true }), bind(key: string): BindingToSyntax { return this.original.bind(Symbol.for(key)); }, unbind(key: string): void { return this.original.unbind(Symbol.for(key)); }, get(key: string): T { return this.original.get(Symbol.for(key)); }, }; container.bind('logger').to(Logger); container.bind('i18n-translator').to(I18nTranslator); container.bind('dialog').to(Dialog); container.bind('store').to(Store); container.bind('nhentai-app-window').to(NhentaiAppWindow); container.bind('nhentai-api').to(NhentaiApi); container.bind('nhentai-source-getter').to(NhentaiSourceGetter); container.bind('app-window-main').to(MainAppWindow);