31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import 'reflect-metadata';
|
|
import { Container } from 'inversify';
|
|
import { MainAppWindow } from '../modules/app-window/main-app-window';
|
|
import { NhentaiApi } from '../modules/nhentai/nhentai-api';
|
|
import '../modules/nhentai/nhentai-ipc-controller';
|
|
import { Session } from '../modules/session/session';
|
|
import { Store } from '../modules/store/store';
|
|
import { StoreMock } from '../modules/store/store.mock';
|
|
import { WebCrawler } from '../modules/web-crawler/web-crawler';
|
|
|
|
export const container = new Container({ defaultScope: 'Singleton' });
|
|
|
|
container.bind(Symbol.for('store')).to(Store);
|
|
export function mockStore(unMock = false): void {
|
|
if (unMock) {
|
|
container.unbind(Symbol.for('store'));
|
|
container.bind(Symbol.for('store')).to(Store);
|
|
} else {
|
|
container.unbind(Symbol.for('store'));
|
|
container.bind(Symbol.for('store')).to(StoreMock);
|
|
}
|
|
}
|
|
|
|
container.bind(Symbol.for('web-crawler')).to(WebCrawler);
|
|
|
|
container.bind(Symbol.for('nhentai-api')).to(NhentaiApi);
|
|
|
|
container.bind(Symbol.for('app-window-main')).to(MainAppWindow);
|
|
|
|
container.bind(Symbol.for('session')).to(Session);
|