summaryrefslogtreecommitdiff
path: root/data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2023-09-26 23:22:45 -0400
committerMark H Weaver <mhw@netris.org>2023-09-27 14:34:22 -0400
commitd167f676a167b1392a4e29f14ddf25613468680b (patch)
tree5a4ac387d2981048317e261b90d87efae30edb3b /data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js
parent7b009e75aee7101d89cb8e94f72ebad050ba6485 (diff)
Update LibreJS to 7.21.1.
Diffstat (limited to 'data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js')
-rw-r--r--data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js38
1 files changed, 15 insertions, 23 deletions
diff --git a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js
index 6254d66..0d27c01 100644
--- a/data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js
+++ b/data/extensions/jid1-KtlZuoiikVfFew@jetpack/common/Storage.js
@@ -2,6 +2,7 @@
* GNU LibreJS - A browser add-on to block nonfree nontrivial JavaScript.
*
* Copyright (C) 2018 Giorgio Maone <giorgio@maone.net>
+* Copyright (C) 2022 Yuchen Pei <id@ypei.org>
*
* This file is part of GNU LibreJS.
*
@@ -25,13 +26,13 @@
*/
'use strict';
-var Storage = {
+
+const Storage = {
ARRAY: {
async load(key, array = undefined) {
- if (array === undefined) {
- array = (await browser.storage.local.get(key))[key];
- }
- return array ? new Set(array) : new Set();
+ const result = array === undefined ?
+ (await browser.storage.local.get(key))[key] : array;
+ return result ? new Set(result) : new Set();
},
async save(key, list) {
return await browser.storage.local.set({ [key]: [...list] });
@@ -40,7 +41,7 @@ var Storage = {
CSV: {
async load(key) {
- let csv = (await browser.storage.local.get(key))[key];
+ const csv = (await browser.storage.local.get(key))[key];
return csv ? new Set(csv.split(/\s*,\s*/)) : new Set();
},
@@ -77,7 +78,7 @@ class ListStore {
return hash.startsWith('(') ? hash : `(${hash})`;
}
static urlItem(url) {
- let queryPos = url.indexOf('?');
+ const queryPos = url.indexOf('?');
return queryPos === -1 ? url : url.substring(0, queryPos);
}
static siteItem(url) {
@@ -108,24 +109,14 @@ class ListStore {
}
async store(...items) {
- let size = this.items.size;
- let changed = false;
- for (let item of items) {
- if (size !== this.items.add(item).size) {
- changed = true;
- }
- }
- return changed && await this.save();
+ const size = this.items.size;
+ const changed = items.reduce((current, item) => size !== this.items.add(item).size || current, false);
+ changed && await this.save();
}
async remove(...items) {
- let changed = false;
- for (let item of items) {
- if (this.items.delete(item)) {
- changed = true;
- }
- }
- return changed && await this.save();
+ const changed = items.reduce((current, item) => this.items.delete(item) || current, false);
+ changed && await this.save();
}
contains(item) {
@@ -134,12 +125,13 @@ class ListStore {
}
function hash(source) {
- var shaObj = new jssha('SHA-256', 'TEXT')
+ const shaObj = new jssha('SHA-256', 'TEXT')
shaObj.update(source);
return shaObj.getHash('HEX');
}
if (typeof module === 'object') {
module.exports = { ListStore, Storage, hash };
+ // TODO: eliminate the var
var jssha = require('jssha');
}