aboutsummaryrefslogtreecommitdiff
path: root/src/content/di.ts
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2019-05-22 20:16:21 +0900
committerGitHub <noreply@github.com>2019-05-22 20:16:21 +0900
commitc1f64927b63d18048790abd3ba907083dbca3084 (patch)
tree3a64b677763f62094c49527d8182f8756a52fbd1 /src/content/di.ts
parentced89134e32d793d8e091113cfb20867e1c3b572 (diff)
parent7be8bc71784b8dedd0fee03dd72dd8936e2f3929 (diff)
Merge pull request #588 from ueokande/tsyringe
Use tsyringe for DI container
Diffstat (limited to 'src/content/di.ts')
-rw-r--r--src/content/di.ts54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/content/di.ts b/src/content/di.ts
new file mode 100644
index 0000000..23be027
--- /dev/null
+++ b/src/content/di.ts
@@ -0,0 +1,54 @@
+/* eslint-disable max-len */
+
+import { AddonEnabledRepositoryImpl } from './repositories/AddonEnabledRepository';
+import { AddonIndicatorClientImpl } from './client/AddonIndicatorClient';
+import { ClipboardRepositoryImpl } from './repositories/ClipboardRepository';
+import { ConsoleClientImpl } from './client/ConsoleClient';
+import { ConsoleFramePresenterImpl } from './presenters/ConsoleFramePresenter';
+import { FindClientImpl } from './client/FindClient';
+import { FindMasterClientImpl } from './client/FindMasterClient';
+import { FindPresenterImpl } from './presenters/FindPresenter';
+import { FindRepositoryImpl } from './repositories/FindRepository';
+import { FocusPresenterImpl } from './presenters/FocusPresenter';
+import { FollowKeyRepositoryImpl } from './repositories/FollowKeyRepository';
+import { FollowMasterClientImpl } from './client/FollowMasterClient';
+import { FollowMasterRepositoryImpl } from './repositories/FollowMasterRepository';
+import { FollowPresenterImpl } from './presenters/FollowPresenter';
+import { FollowSlaveClientFactoryImpl } from './client/FollowSlaveClientFactory';
+import { FollowSlaveRepositoryImpl } from './repositories/FollowSlaveRepository';
+import { KeymapRepositoryImpl } from './repositories/KeymapRepository';
+import { MarkClientImpl } from './client/MarkClient';
+import { MarkKeyRepositoryImpl } from './repositories/MarkKeyRepository';
+import { MarkRepositoryImpl } from './repositories/MarkRepository';
+import { NavigationPresenterImpl } from './presenters/NavigationPresenter';
+import { ScrollPresenterImpl } from './presenters/ScrollPresenter';
+import { SettingClientImpl } from './client/SettingClient';
+import { SettingRepositoryImpl } from './repositories/SettingRepository';
+import { TabsClientImpl } from './client/TabsClient';
+import { container } from 'tsyringe';
+
+container.register('FollowMasterClient', { useValue: new FollowMasterClientImpl(window.top) });
+container.register('AddonEnabledRepository', { useClass: AddonEnabledRepositoryImpl });
+container.register('AddonIndicatorClient', { useClass: AddonIndicatorClientImpl });
+container.register('ClipboardRepository', { useClass: ClipboardRepositoryImpl });
+container.register('ConsoleClient', { useClass: ConsoleClientImpl });
+container.register('ConsoleFramePresenter', { useClass: ConsoleFramePresenterImpl });
+container.register('FindClient', { useClass: FindClientImpl });
+container.register('FindMasterClient', { useClass: FindMasterClientImpl });
+container.register('FindPresenter', { useClass: FindPresenterImpl });
+container.register('FindRepository', { useClass: FindRepositoryImpl });
+container.register('FocusPresenter', { useClass: FocusPresenterImpl });
+container.register('FollowKeyRepository', { useClass: FollowKeyRepositoryImpl });
+container.register('FollowMasterRepository', { useClass: FollowMasterRepositoryImpl });
+container.register('FollowPresenter', { useClass: FollowPresenterImpl });
+container.register('FollowSlaveClientFactory', { useClass: FollowSlaveClientFactoryImpl });
+container.register('FollowSlaveRepository', { useClass: FollowSlaveRepositoryImpl });
+container.register('KeymapRepository', { useClass: KeymapRepositoryImpl });
+container.register('MarkClient', { useClass: MarkClientImpl });
+container.register('MarkKeyRepository', { useClass: MarkKeyRepositoryImpl });
+container.register('MarkRepository', { useClass: MarkRepositoryImpl });
+container.register('NavigationPresenter', { useClass: NavigationPresenterImpl });
+container.register('ScrollPresenter', { useClass: ScrollPresenterImpl });
+container.register('SettingClient', { useClass: SettingClientImpl });
+container.register('SettingRepository', { useClass: SettingRepositoryImpl });
+container.register('TabsClient', { useClass: TabsClientImpl });