Skip to content

Commit 33bfdb5

Browse files
committed
split storage
1 parent 58e2823 commit 33bfdb5

File tree

4 files changed

+50
-45
lines changed

4 files changed

+50
-45
lines changed

popup/helpers/storage.js

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import allScripts from "../../scripts/_allScripts.js";
2-
31
const createVariableSaver = (key, defaultValue = null) => ({
42
set: (data) => {
53
localStorage.setItem(key, JSON.stringify(data));
@@ -13,51 +11,11 @@ const createVariableSaver = (key, defaultValue = null) => ({
1311
},
1412
});
1513

16-
const createScriptsSaver = (key, addToHead = true) => {
17-
const getIds = () =>
18-
JSON.parse(localStorage.getItem(key) ?? "[]").filter(
19-
(savedScriptId) => savedScriptId in allScripts
20-
);
21-
const has = (script) => {
22-
let current = getIds();
23-
let exist = current.findIndex((id) => id === script.id) >= 0;
24-
return exist;
25-
};
26-
const add = (script) => {
27-
let current = getIds();
28-
let newList = current.filter((id) => id != script.id); // remove duplicate
29-
if (addToHead) newList.unshift(script.id); // only save script id
30-
else newList.push(script.id);
31-
localStorage.setItem(key, JSON.stringify(newList));
32-
};
33-
const remove = (script) => {
34-
let current = getIds();
35-
let newList = current.filter((id) => id !== script.id);
36-
localStorage.setItem(key, JSON.stringify(newList));
37-
console.log("removed ", script);
38-
};
39-
const toggle = (script) => {
40-
let exist = has(script);
41-
if (exist) remove(script);
42-
else add(script);
43-
};
44-
const clear = () => {
45-
localStorage.setItem(key, "[]");
46-
};
47-
const get = () => getIds().map((savedScriptId) => allScripts[savedScriptId]);
48-
49-
return { add, remove, has, toggle, clear, getIds, get };
50-
};
51-
5214
export const themeSaver = createVariableSaver("useful-scripts-theme");
5315
export const langSaver = createVariableSaver("useful-scripts-lang");
5416
export const activeTabIdSaver = createVariableSaver(
5517
"useful-scripts-activeTabId"
5618
);
57-
export const recentScriptsSaver = createScriptsSaver("useful-scripts-recently");
58-
export const favoriteScriptsSaver = createScriptsSaver(
59-
"useful-scripts-favorite"
60-
);
6119

6220
// default is false => enabled; true => disabled
6321
export const disableSmoothScrollSaver = createVariableSaver(

popup/helpers/storageScripts.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import allScripts from "../../scripts/_allScripts.js";
2+
3+
const createScriptsSaver = (key, addToHead = true) => {
4+
const getIds = () =>
5+
JSON.parse(localStorage.getItem(key) ?? "[]").filter(
6+
(savedScriptId) => savedScriptId in allScripts
7+
);
8+
const has = (script) => {
9+
let current = getIds();
10+
let exist = current.findIndex((id) => id === script.id) >= 0;
11+
return exist;
12+
};
13+
const add = (script) => {
14+
let current = getIds();
15+
let newList = current.filter((id) => id != script.id); // remove duplicate
16+
if (addToHead) newList.unshift(script.id); // only save script id
17+
else newList.push(script.id);
18+
localStorage.setItem(key, JSON.stringify(newList));
19+
};
20+
const remove = (script) => {
21+
let current = getIds();
22+
let newList = current.filter((id) => id !== script.id);
23+
localStorage.setItem(key, JSON.stringify(newList));
24+
console.log("removed ", script);
25+
};
26+
const toggle = (script) => {
27+
let exist = has(script);
28+
if (exist) remove(script);
29+
else add(script);
30+
};
31+
const clear = () => {
32+
localStorage.setItem(key, "[]");
33+
};
34+
const get = () => getIds().map((savedScriptId) => allScripts[savedScriptId]);
35+
36+
return { add, remove, has, toggle, clear, getIds, get };
37+
};
38+
39+
export const recentScriptsSaver = createScriptsSaver("useful-scripts-recently");
40+
export const favoriteScriptsSaver = createScriptsSaver(
41+
"useful-scripts-favorite"
42+
);

popup/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@ import {
2727
} from "./helpers/lang.js";
2828
import {
2929
activeTabIdSaver,
30-
favoriteScriptsSaver,
31-
recentScriptsSaver,
3230
disableSmoothScrollSaver,
3331
} from "./helpers/storage.js";
32+
import {
33+
recentScriptsSaver,
34+
favoriteScriptsSaver,
35+
} from "./helpers/storageScripts.js";
3436
import {
3537
canAutoRun,
3638
canClick,

popup/tabs.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import { canAutoRun } from "./helpers/utils.js";
44
import { CATEGORY } from "./helpers/category.js";
55
import { BADGES } from "../scripts/helpers/badge.js";
66
import { getCurrentTab } from "../scripts/helpers/utils.js";
7-
import { favoriteScriptsSaver, recentScriptsSaver } from "./helpers/storage.js";
7+
import {
8+
favoriteScriptsSaver,
9+
recentScriptsSaver,
10+
} from "./helpers/storageScripts.js";
811

912
console.log(s);
1013

0 commit comments

Comments
 (0)