Use TSyringe on background script
This commit is contained in:
parent
c7803e7c29
commit
cdfd54ed99
37 changed files with 212 additions and 202 deletions
35
src/background/Application.ts
Normal file
35
src/background/Application.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import { injectable } from 'tsyringe';
|
||||
import ContentMessageListener from './infrastructures/ContentMessageListener';
|
||||
import SettingController from './controllers/SettingController';
|
||||
import VersionController from './controllers/VersionController';
|
||||
|
||||
@injectable()
|
||||
export default class Application {
|
||||
constructor(
|
||||
private contentMessageListener: ContentMessageListener,
|
||||
private settingController: SettingController,
|
||||
private versionController: VersionController,
|
||||
) {
|
||||
}
|
||||
|
||||
run() {
|
||||
this.settingController.reload();
|
||||
|
||||
browser.runtime.onInstalled.addListener((details) => {
|
||||
if (details.reason !== 'install' && details.reason !== 'update') {
|
||||
return;
|
||||
}
|
||||
this.versionController.notify();
|
||||
});
|
||||
|
||||
this.contentMessageListener.run();
|
||||
browser.storage.onChanged.addListener((changes, area) => {
|
||||
if (area !== 'local') {
|
||||
return;
|
||||
}
|
||||
if (changes.settings) {
|
||||
this.settingController.reload();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Reference in a new issue