Make Settings class

This commit is contained in:
Shin'ya UEOKA 2019-10-05 07:19:48 +00:00
parent b86b4680b6
commit 0dec6c641f
13 changed files with 120 additions and 99 deletions

View file

@ -1,7 +1,7 @@
import { injectable } from 'tsyringe';
import SettingUseCase from '../usecases/SettingUseCase';
import ContentMessageClient from '../infrastructures/ContentMessageClient';
import Settings from '../../shared/Settings';
import Settings from '../../shared/settings/Settings';
@injectable()
export default class SettingController {

View file

@ -8,7 +8,6 @@ import AddonEnabledController from '../controllers/AddonEnabledController';
import LinkController from '../controllers/LinkController';
import OperationController from '../controllers/OperationController';
import MarkController from '../controllers/MarkController';
import { toJSON } from '../../shared/Settings';
@injectable()
export default class ContentMessageListener {
@ -103,7 +102,7 @@ export default class ContentMessageListener {
}
async onSettingsQuery(): Promise<any> {
return toJSON(await this.settingController.getSetting());
return (await this.settingController.getSetting()).toJSON();
}
onFindGetKeyword(): Promise<string> {

View file

@ -1,6 +1,6 @@
import { injectable } from 'tsyringe';
import MemoryStorage from '../infrastructures/MemoryStorage';
import Settings, { valueOf, toJSON } from '../../shared/Settings';
import Settings from '../../shared/settings/Settings';
import Properties from '../../shared/settings/Properties';
const CACHED_SETTING_KEY = 'setting';
@ -15,12 +15,11 @@ export default class SettingRepository {
get(): Promise<Settings> {
let data = this.cache.get(CACHED_SETTING_KEY);
return Promise.resolve(valueOf(data));
return Promise.resolve(Settings.fromJSON(data));
}
update(value: Settings): void {
let data = toJSON(value);
return this.cache.set(CACHED_SETTING_KEY, data);
return this.cache.set(CACHED_SETTING_KEY, value.toJSON());
}
async setProperty(

View file

@ -3,7 +3,7 @@ import PersistentSettingRepository
from '../repositories/PersistentSettingRepository';
import SettingRepository from '../repositories/SettingRepository';
import { DefaultSettingData } from '../../shared/SettingData';
import Settings from '../../shared/Settings';
import Settings from '../../shared/settings/Settings';
import NotifyPresenter from '../presenters/NotifyPresenter';
@injectable()