aboutsummaryrefslogtreecommitdiff
path: root/src/background/repositories
diff options
context:
space:
mode:
Diffstat (limited to 'src/background/repositories')
-rw-r--r--src/background/repositories/persistent-setting.js16
-rw-r--r--src/background/repositories/setting.js17
2 files changed, 33 insertions, 0 deletions
diff --git a/src/background/repositories/persistent-setting.js b/src/background/repositories/persistent-setting.js
new file mode 100644
index 0000000..247ea6f
--- /dev/null
+++ b/src/background/repositories/persistent-setting.js
@@ -0,0 +1,16 @@
+import Setting from '../domains/setting';
+
+export default class SettingRepository {
+ save(settings) {
+ return browser.storage.local.set({ settings: settings.serialize() });
+ }
+
+ async load() {
+ let { settings } = await browser.storage.local.get('settings');
+ if (!settings) {
+ return null;
+ }
+ return Setting.deserialize(settings);
+ }
+}
+
diff --git a/src/background/repositories/setting.js b/src/background/repositories/setting.js
new file mode 100644
index 0000000..d9c481d
--- /dev/null
+++ b/src/background/repositories/setting.js
@@ -0,0 +1,17 @@
+import MemoryStorage from '../infrastructures/memory-storage';
+
+const CACHED_SETTING_KEY = 'setting';
+
+export default class SettingRepository {
+ constructor() {
+ this.cache = new MemoryStorage();
+ }
+
+ get() {
+ return Promise.resolve(this.cache.get(CACHED_SETTING_KEY));
+ }
+
+ update(value) {
+ return this.cache.set(CACHED_SETTING_KEY, value);
+ }
+}