aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/local-store.js
diff options
context:
space:
mode:
authorDan Finlay <542863+danfinlay@users.noreply.github.com>2018-04-19 06:37:50 +0800
committerGitHub <noreply@github.com>2018-04-19 06:37:50 +0800
commit4544d57f2632ce5a00dc8780a7b360ab9b2657c3 (patch)
treecc7acf6302befb1e898571c800f873d670cf7cd5 /app/scripts/lib/local-store.js
parent6742a5b2722da7af9320f46b18e9f4b59c5666ba (diff)
parent603c1310ffc0cdb61a66f68b8240e76c2ae7cb04 (diff)
downloadtangerine-wallet-browser-4544d57f2632ce5a00dc8780a7b360ab9b2657c3.tar.gz
tangerine-wallet-browser-4544d57f2632ce5a00dc8780a7b360ab9b2657c3.tar.zst
tangerine-wallet-browser-4544d57f2632ce5a00dc8780a7b360ab9b2657c3.zip
Merge pull request #3984 from whymarrh/3941-jsdoc
Add a few docblocks to background files
Diffstat (limited to 'app/scripts/lib/local-store.js')
-rw-r--r--app/scripts/lib/local-store.js37
1 files changed, 32 insertions, 5 deletions
diff --git a/app/scripts/lib/local-store.js b/app/scripts/lib/local-store.js
index 2dda0ba1f..139ff86bd 100644
--- a/app/scripts/lib/local-store.js
+++ b/app/scripts/lib/local-store.js
@@ -1,11 +1,13 @@
-// We should not rely on local storage in an extension!
-// We should use this instead!
-// https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage/local
-
const extension = require('extensionizer')
const log = require('loglevel')
+/**
+ * A wrapper around the extension's storage local API
+ */
module.exports = class ExtensionStore {
+ /**
+ * @constructor
+ */
constructor() {
this.isSupported = !!(extension.storage.local)
if (!this.isSupported) {
@@ -13,6 +15,10 @@ module.exports = class ExtensionStore {
}
}
+ /**
+ * Returns all of the keys currently saved
+ * @return {Promise<*>}
+ */
async get() {
if (!this.isSupported) return undefined
const result = await this._get()
@@ -25,14 +31,24 @@ module.exports = class ExtensionStore {
}
}
+ /**
+ * Sets the key in local state
+ * @param {object} state - The state to set
+ * @return {Promise<void>}
+ */
async set(state) {
return this._set(state)
}
+ /**
+ * Returns all of the keys currently saved
+ * @private
+ * @return {object} the key-value map from local storage
+ */
_get() {
const local = extension.storage.local
return new Promise((resolve, reject) => {
- local.get(null, (result) => {
+ local.get(null, (/** @type {any} */ result) => {
const err = extension.runtime.lastError
if (err) {
reject(err)
@@ -43,6 +59,12 @@ module.exports = class ExtensionStore {
})
}
+ /**
+ * Sets the key in local state
+ * @param {object} obj - The key to set
+ * @return {Promise<void>}
+ * @private
+ */
_set(obj) {
const local = extension.storage.local
return new Promise((resolve, reject) => {
@@ -58,6 +80,11 @@ module.exports = class ExtensionStore {
}
}
+/**
+ * Returns whether or not the given object contains no keys
+ * @param {object} obj - The object to check
+ * @returns {boolean}
+ */
function isEmpty(obj) {
return Object.keys(obj).length === 0
}