A fork of https://github.com/ueokande/vim-vixen
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
837 B
31 lines
837 B
import { injectable } from 'tsyringe'; |
|
import PersistentSettingRepository |
|
from '../repositories/PersistentSettingRepository'; |
|
import SettingRepository from '../repositories/SettingRepository'; |
|
import { DefaultSettingData } from '../../shared/SettingData'; |
|
import Settings from '../../shared/Settings'; |
|
|
|
@injectable() |
|
export default class SettingUseCase { |
|
|
|
constructor( |
|
private persistentSettingRepository: PersistentSettingRepository, |
|
private settingRepository: SettingRepository, |
|
) { |
|
} |
|
|
|
get(): Promise<Settings> { |
|
return this.settingRepository.get(); |
|
} |
|
|
|
async reload(): Promise<Settings> { |
|
let data = await this.persistentSettingRepository.load(); |
|
if (!data) { |
|
data = DefaultSettingData; |
|
} |
|
|
|
let value = data.toSettings(); |
|
this.settingRepository.update(value); |
|
return value; |
|
} |
|
}
|
|
|