diff options
author | frankiebee <frankie.diamond@gmail.com> | 2018-04-20 02:49:11 +0800 |
---|---|---|
committer | frankiebee <frankie.diamond@gmail.com> | 2018-04-20 02:49:11 +0800 |
commit | c20c97ce625207c7afcd48a12f6e7891d582ae99 (patch) | |
tree | b5e063ee7cfd0d0e99fcdb0409fe3106c010bf79 /app/scripts/lib/local-store.js | |
parent | eeb9390de81ce6fc92247d5c499e991dce8330bd (diff) | |
parent | 00efcf9e8ba34d448b628c98d32ad12d5be2ffc9 (diff) | |
download | tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.gz tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.bz2 tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.lz tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.xz tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.tar.zst tangerine-wallet-browser-c20c97ce625207c7afcd48a12f6e7891d582ae99.zip |
Merge branch 'master' into tx-controller-rewrite-v3
Diffstat (limited to 'app/scripts/lib/local-store.js')
-rw-r--r-- | app/scripts/lib/local-store.js | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/app/scripts/lib/local-store.js b/app/scripts/lib/local-store.js index 5b47985f6..139ff86bd 100644 --- a/app/scripts/lib/local-store.js +++ b/app/scripts/lib/local-store.js @@ -1,10 +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) { @@ -12,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() @@ -24,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) @@ -42,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) => { @@ -57,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 } |