diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2019-08-05 21:21:39 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-05 21:21:39 +0900 |
commit | e7ed84f7576eafadfcd0f7b9737586d048477454 (patch) | |
tree | c8f7d1b783aad596f57fbffd873f8b07f5b0dba1 /src/background/usecases | |
parent | 7104f122f94e17ece56d2bd832d007c716e5631e (diff) | |
parent | 9b2b8f0608df9e4c7a251f49d8ed818b8966786e (diff) |
Merge pull request #622 from ueokande/fallback-default-settings
Handle errors on loading settings
Diffstat (limited to 'src/background/usecases')
-rw-r--r-- | src/background/usecases/SettingUseCase.ts | 12 | ||||
-rw-r--r-- | src/background/usecases/VersionUseCase.ts | 4 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/background/usecases/SettingUseCase.ts b/src/background/usecases/SettingUseCase.ts index fd00f80..53c8f1d 100644 --- a/src/background/usecases/SettingUseCase.ts +++ b/src/background/usecases/SettingUseCase.ts @@ -4,6 +4,7 @@ import PersistentSettingRepository import SettingRepository from '../repositories/SettingRepository'; import { DefaultSettingData } from '../../shared/SettingData'; import Settings from '../../shared/Settings'; +import NotifyPresenter from '../presenters/NotifyPresenter'; @injectable() export default class SettingUseCase { @@ -11,6 +12,7 @@ export default class SettingUseCase { constructor( private persistentSettingRepository: PersistentSettingRepository, private settingRepository: SettingRepository, + private notifyPresenter: NotifyPresenter, ) { } @@ -24,8 +26,14 @@ export default class SettingUseCase { data = DefaultSettingData; } - let value = data.toSettings(); - this.settingRepository.update(value); + let value: Settings; + try { + value = data.toSettings(); + } catch (e) { + this.notifyPresenter.notifyInvalidSettings(); + value = DefaultSettingData.toSettings(); + } + this.settingRepository.update(value!!); return value; } } diff --git a/src/background/usecases/VersionUseCase.ts b/src/background/usecases/VersionUseCase.ts index 1d9ef8b..0ff0e9b 100644 --- a/src/background/usecases/VersionUseCase.ts +++ b/src/background/usecases/VersionUseCase.ts @@ -12,10 +12,8 @@ export default class VersionUseCase { notify(): Promise<void> { let manifest = browser.runtime.getManifest(); - let title = `Vim Vixen ${manifest.version} has been installed`; - let message = 'Click here to see release notes'; let url = this.releaseNoteUrl(manifest.version); - return this.notifyPresenter.notify(title, message, () => { + return this.notifyPresenter.notifyUpdated(manifest.version, () => { this.tabPresenter.create(url); }); } |