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.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
|
|
|
import MemoryStorage from '../infrastructures/MemoryStorage';
|
|
|
|
|
|
|
|
const CACHED_SETTING_KEY = 'setting';
|
|
|
|
|
|
|
|
export default class SettingRepository {
|
|
|
|
private cache: MemoryStorage;
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
this.cache = new MemoryStorage();
|
|
|
|
}
|
|
|
|
|
|
|
|
get(): Promise<any> {
|
|
|
|
return Promise.resolve(this.cache.get(CACHED_SETTING_KEY));
|
|
|
|
}
|
|
|
|
|
|
|
|
update(value: any): any {
|
|
|
|
return this.cache.set(CACHED_SETTING_KEY, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
async setProperty(name: string, value: string): Promise<any> {
|
|
|
|
let current = await this.get();
|
|
|
|
current.properties[name] = value;
|
|
|
|
return this.update(current);
|
|
|
|
}
|
|
|
|
}
|