diff options
Diffstat (limited to 'src/background/Application.ts')
-rw-r--r-- | src/background/Application.ts | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/background/Application.ts b/src/background/Application.ts new file mode 100644 index 0000000..08013cd --- /dev/null +++ b/src/background/Application.ts @@ -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(); + } + }); + } +} |