@take-out/helpers 0.1.22 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/storage/createStorage.cjs +49 -43
- package/dist/cjs/storage/createStorage.js +10 -6
- package/dist/cjs/storage/createStorage.js.map +1 -1
- package/dist/cjs/storage/createStorage.native.js +71 -62
- package/dist/cjs/storage/createStorage.native.js.map +1 -1
- package/dist/esm/storage/createStorage.js +10 -6
- package/dist/esm/storage/createStorage.js.map +1 -1
- package/dist/esm/storage/createStorage.mjs +49 -43
- package/dist/esm/storage/createStorage.mjs.map +1 -1
- package/dist/esm/storage/createStorage.native.js +71 -62
- package/dist/esm/storage/createStorage.native.js.map +1 -1
- package/package.json +1 -1
- package/src/storage/createStorage.ts +21 -7
|
@@ -25,52 +25,58 @@ __export(createStorage_exports, {
|
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(createStorage_exports);
|
|
27
27
|
var import_driver = require("./driver.cjs");
|
|
28
|
-
const
|
|
28
|
+
const globalKey = "__takeout_storage__",
|
|
29
|
+
globalCache = globalThis[globalKey] ??= {
|
|
30
|
+
namespaces: /* @__PURE__ */new Set(),
|
|
31
|
+
instances: /* @__PURE__ */new Map()
|
|
32
|
+
};
|
|
29
33
|
function createStorage(namespace) {
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
const existing = globalCache.instances.get(namespace);
|
|
35
|
+
if (existing) return existing;
|
|
36
|
+
globalCache.namespaces.add(namespace);
|
|
32
37
|
const prefix = `${namespace}:`,
|
|
33
|
-
prefixKey = key => `${prefix}${key}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
prefixKey = key => `${prefix}${key}`,
|
|
39
|
+
storage = {
|
|
40
|
+
get(key) {
|
|
41
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
42
|
+
if (!driver) return;
|
|
43
|
+
const raw = driver.getItem(prefixKey(key));
|
|
44
|
+
if (raw != null) try {
|
|
45
|
+
return JSON.parse(raw);
|
|
46
|
+
} catch {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
set(key, value) {
|
|
51
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
52
|
+
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
53
|
+
},
|
|
54
|
+
remove(key) {
|
|
55
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
56
|
+
driver && driver.removeItem(prefixKey(key));
|
|
57
|
+
},
|
|
58
|
+
has(key) {
|
|
59
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
60
|
+
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
61
|
+
},
|
|
62
|
+
keys() {
|
|
63
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
64
|
+
return driver ? driver.getAllKeys().filter(k => k.startsWith(prefix)).map(k => k.slice(prefix.length)) : [];
|
|
65
|
+
},
|
|
66
|
+
clear() {
|
|
67
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
68
|
+
if (driver) for (const key of this.keys()) driver.removeItem(prefixKey(key));
|
|
69
|
+
},
|
|
70
|
+
getItem(key) {
|
|
71
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
72
|
+
return driver ? driver.getItem(prefixKey(key)) ?? null : null;
|
|
73
|
+
},
|
|
74
|
+
setItem(key, value) {
|
|
75
|
+
const driver = (0, import_driver.getStorageDriver)();
|
|
76
|
+
driver && driver.setItem(prefixKey(key), value);
|
|
43
77
|
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const driver = (0, import_driver.getStorageDriver)();
|
|
47
|
-
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
48
|
-
},
|
|
49
|
-
remove(key) {
|
|
50
|
-
const driver = (0, import_driver.getStorageDriver)();
|
|
51
|
-
driver && driver.removeItem(prefixKey(key));
|
|
52
|
-
},
|
|
53
|
-
has(key) {
|
|
54
|
-
const driver = (0, import_driver.getStorageDriver)();
|
|
55
|
-
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
56
|
-
},
|
|
57
|
-
keys() {
|
|
58
|
-
const driver = (0, import_driver.getStorageDriver)();
|
|
59
|
-
return driver ? driver.getAllKeys().filter(k => k.startsWith(prefix)).map(k => k.slice(prefix.length)) : [];
|
|
60
|
-
},
|
|
61
|
-
clear() {
|
|
62
|
-
const driver = (0, import_driver.getStorageDriver)();
|
|
63
|
-
if (driver) for (const key of this.keys()) driver.removeItem(prefixKey(key));
|
|
64
|
-
},
|
|
65
|
-
getItem(key) {
|
|
66
|
-
const driver = (0, import_driver.getStorageDriver)();
|
|
67
|
-
return driver ? driver.getItem(prefixKey(key)) ?? null : null;
|
|
68
|
-
},
|
|
69
|
-
setItem(key, value) {
|
|
70
|
-
const driver = (0, import_driver.getStorageDriver)();
|
|
71
|
-
driver && driver.setItem(prefixKey(key), value);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
78
|
+
};
|
|
79
|
+
return globalCache.instances.set(namespace, storage), storage;
|
|
74
80
|
}
|
|
75
81
|
function createStorageValue(key) {
|
|
76
82
|
const storage = createStorage(`_v:${key}`);
|
|
@@ -19,13 +19,16 @@ __export(createStorage_exports, {
|
|
|
19
19
|
});
|
|
20
20
|
module.exports = __toCommonJS(createStorage_exports);
|
|
21
21
|
var import_driver = require("./driver");
|
|
22
|
-
const
|
|
22
|
+
const globalKey = "__takeout_storage__", globalCache = globalThis[globalKey] ??= {
|
|
23
|
+
namespaces: /* @__PURE__ */ new Set(),
|
|
24
|
+
instances: /* @__PURE__ */ new Map()
|
|
25
|
+
};
|
|
23
26
|
function createStorage(namespace) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const existing = globalCache.instances.get(namespace);
|
|
28
|
+
if (existing)
|
|
29
|
+
return existing;
|
|
30
|
+
globalCache.namespaces.add(namespace);
|
|
31
|
+
const prefix = `${namespace}:`, prefixKey = (key) => `${prefix}${key}`, storage = {
|
|
29
32
|
get(key) {
|
|
30
33
|
const driver = (0, import_driver.getStorageDriver)();
|
|
31
34
|
if (!driver) return;
|
|
@@ -68,6 +71,7 @@ function createStorage(namespace) {
|
|
|
68
71
|
driver && driver.setItem(prefixKey(key), value);
|
|
69
72
|
}
|
|
70
73
|
};
|
|
74
|
+
return globalCache.instances.set(namespace, storage), storage;
|
|
71
75
|
}
|
|
72
76
|
function createStorageValue(key) {
|
|
73
77
|
const storage = createStorage(`_v:${key}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/storage/createStorage.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AAGjC,MAAM,YAAY,uBACZ,cAAgB,WAAmB,SAAS,MAAM;AAAA,EACtD,YAAY,oBAAI,IAAY;AAAA,EAC5B,WAAW,oBAAI,IAA+B;AAChD;AAsCO,SAAS,cAAmC,WAAkC;AAEnF,QAAM,WAAW,YAAY,UAAU,IAAI,SAAS;AACpD,MAAI;AACF,WAAO;AAGT,cAAY,WAAW,IAAI,SAAS;AAEpC,QAAM,SAAS,GAAG,SAAS,KACrB,YAAY,CAAC,QAAgB,GAAG,MAAM,GAAG,GAAG,IAE5C,UAAyB;AAAA,IAC7B,IAAI,KAAuB;AACzB,YAAM,aAAS,gCAAiB;AAChC,UAAI,CAAC,OAAQ;AACb,YAAM,MAAM,OAAO,QAAQ,UAAU,GAAG,CAAC;AACzC,UAAI,OAAO;AACX,YAAI;AACF,iBAAO,KAAK,MAAM,GAAG;AAAA,QACvB,QAAQ;AACN;AAAA,QACF;AAAA,IACF;AAAA,IAEA,IAAI,KAAQ,OAAgB;AAC1B,YAAM,aAAS,gCAAiB;AAChC,MAAK,UACL,OAAO,QAAQ,UAAU,GAAG,GAAG,KAAK,UAAU,KAAK,CAAC;AAAA,IACtD;AAAA,IAEA,OAAO,KAAc;AACnB,YAAM,aAAS,gCAAiB;AAChC,MAAK,UACL,OAAO,WAAW,UAAU,GAAG,CAAC;AAAA,IAClC;AAAA,IAEA,IAAI,KAAiB;AACnB,YAAM,aAAS,gCAAiB;AAChC,aAAK,SACE,OAAO,QAAQ,UAAU,GAAG,CAAC,KAAK,OADrB;AAAA,IAEtB;AAAA,IAEA,OAAY;AACV,YAAM,aAAS,gCAAiB;AAChC,aAAK,SACE,OACJ,WAAW,EACX,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,CAAC,EAClC,IAAI,CAAC,MAAM,EAAE,MAAM,OAAO,MAAM,CAAM,IAJrB,CAAC;AAAA,IAKvB;AAAA,IAEA,QAAc;AACZ,YAAM,aAAS,gCAAiB;AAChC,UAAK;AACL,mBAAW,OAAO,KAAK,KAAK;AAC1B,iBAAO,WAAW,UAAU,GAAG,CAAC;AAAA,IAEpC;AAAA,IAEA,QAAQ,KAAuB;AAC7B,YAAM,aAAS,gCAAiB;AAChC,aAAK,SACE,OAAO,QAAQ,UAAU,GAAG,CAAC,KAAK,OADrB;AAAA,IAEtB;AAAA,IAEA,QAAQ,KAAQ,OAAqB;AACnC,YAAM,aAAS,gCAAiB;AAChC,MAAK,UACL,OAAO,QAAQ,UAAU,GAAG,GAAG,KAAK;AAAA,IACtC;AAAA,EACF;AAEA,qBAAY,UAAU,IAAI,WAAW,OAAO,GACrC;AACT;AA0BO,SAAS,mBAAsB,KAA8B;AAClE,QAAM,UAAU,cAA0B,MAAM,GAAG,EAAE;AACrD,SAAO;AAAA,IACL,KAAK,MAAqB,QAAQ,IAAI,OAAO;AAAA,IAC7C,KAAK,CAAC,UAAmB,QAAQ,IAAI,SAAS,KAAK;AAAA,IACnD,QAAQ,MAAY,QAAQ,OAAO,OAAO;AAAA,IAC1C,KAAK,MAAe,QAAQ,IAAI,OAAO;AAAA,EACzC;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -27,79 +27,88 @@ __export(createStorage_exports, {
|
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(createStorage_exports);
|
|
29
29
|
var import_driver = require("./driver.native.js"),
|
|
30
|
-
|
|
30
|
+
_globalThis,
|
|
31
|
+
_globalKey,
|
|
32
|
+
globalKey = "__takeout_storage__",
|
|
33
|
+
_,
|
|
34
|
+
globalCache = (_ = (_globalThis = globalThis)[_globalKey = globalKey]) !== null && _ !== void 0 ? _ : _globalThis[_globalKey] = {
|
|
35
|
+
namespaces: /* @__PURE__ */new Set(),
|
|
36
|
+
instances: /* @__PURE__ */new Map()
|
|
37
|
+
};
|
|
31
38
|
function createStorage(namespace) {
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
var existing = globalCache.instances.get(namespace);
|
|
40
|
+
if (existing) return existing;
|
|
41
|
+
globalCache.namespaces.add(namespace);
|
|
34
42
|
var prefix = `${namespace}:`,
|
|
35
43
|
prefixKey = function (key) {
|
|
36
44
|
return `${prefix}${key}`;
|
|
37
|
-
};
|
|
38
|
-
return {
|
|
39
|
-
get(key) {
|
|
40
|
-
var driver = (0, import_driver.getStorageDriver)();
|
|
41
|
-
if (driver) {
|
|
42
|
-
var raw = driver.getItem(prefixKey(key));
|
|
43
|
-
if (raw != null) try {
|
|
44
|
-
return JSON.parse(raw);
|
|
45
|
-
} catch {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
set(key, value) {
|
|
51
|
-
var driver = (0, import_driver.getStorageDriver)();
|
|
52
|
-
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
53
|
-
},
|
|
54
|
-
remove(key) {
|
|
55
|
-
var driver = (0, import_driver.getStorageDriver)();
|
|
56
|
-
driver && driver.removeItem(prefixKey(key));
|
|
57
|
-
},
|
|
58
|
-
has(key) {
|
|
59
|
-
var driver = (0, import_driver.getStorageDriver)();
|
|
60
|
-
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
61
45
|
},
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
var driver = (0, import_driver.getStorageDriver)();
|
|
72
|
-
if (driver) {
|
|
73
|
-
var _iteratorNormalCompletion = !0,
|
|
74
|
-
_didIteratorError = !1,
|
|
75
|
-
_iteratorError = void 0;
|
|
76
|
-
try {
|
|
77
|
-
for (var _iterator = this.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
78
|
-
var key = _step.value;
|
|
79
|
-
driver.removeItem(prefixKey(key));
|
|
46
|
+
storage = {
|
|
47
|
+
get(key) {
|
|
48
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
49
|
+
if (driver) {
|
|
50
|
+
var raw = driver.getItem(prefixKey(key));
|
|
51
|
+
if (raw != null) try {
|
|
52
|
+
return JSON.parse(raw);
|
|
53
|
+
} catch {
|
|
54
|
+
return;
|
|
80
55
|
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
set(key, value) {
|
|
59
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
60
|
+
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
61
|
+
},
|
|
62
|
+
remove(key) {
|
|
63
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
64
|
+
driver && driver.removeItem(prefixKey(key));
|
|
65
|
+
},
|
|
66
|
+
has(key) {
|
|
67
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
68
|
+
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
69
|
+
},
|
|
70
|
+
keys() {
|
|
71
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
72
|
+
return driver ? driver.getAllKeys().filter(function (k) {
|
|
73
|
+
return k.startsWith(prefix);
|
|
74
|
+
}).map(function (k) {
|
|
75
|
+
return k.slice(prefix.length);
|
|
76
|
+
}) : [];
|
|
77
|
+
},
|
|
78
|
+
clear() {
|
|
79
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
80
|
+
if (driver) {
|
|
81
|
+
var _iteratorNormalCompletion = !0,
|
|
82
|
+
_didIteratorError = !1,
|
|
83
|
+
_iteratorError = void 0;
|
|
84
84
|
try {
|
|
85
|
-
|
|
85
|
+
for (var _iterator = this.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
86
|
+
var key = _step.value;
|
|
87
|
+
driver.removeItem(prefixKey(key));
|
|
88
|
+
}
|
|
89
|
+
} catch (err) {
|
|
90
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
86
91
|
} finally {
|
|
87
|
-
|
|
92
|
+
try {
|
|
93
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
94
|
+
} finally {
|
|
95
|
+
if (_didIteratorError) throw _iteratorError;
|
|
96
|
+
}
|
|
88
97
|
}
|
|
89
98
|
}
|
|
99
|
+
},
|
|
100
|
+
getItem(key) {
|
|
101
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
102
|
+
if (!driver) return null;
|
|
103
|
+
var _driver_getItem;
|
|
104
|
+
return (_driver_getItem = driver.getItem(prefixKey(key))) !== null && _driver_getItem !== void 0 ? _driver_getItem : null;
|
|
105
|
+
},
|
|
106
|
+
setItem(key, value) {
|
|
107
|
+
var driver = (0, import_driver.getStorageDriver)();
|
|
108
|
+
driver && driver.setItem(prefixKey(key), value);
|
|
90
109
|
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
var driver = (0, import_driver.getStorageDriver)();
|
|
94
|
-
if (!driver) return null;
|
|
95
|
-
var _driver_getItem;
|
|
96
|
-
return (_driver_getItem = driver.getItem(prefixKey(key))) !== null && _driver_getItem !== void 0 ? _driver_getItem : null;
|
|
97
|
-
},
|
|
98
|
-
setItem(key, value) {
|
|
99
|
-
var driver = (0, import_driver.getStorageDriver)();
|
|
100
|
-
driver && driver.setItem(prefixKey(key), value);
|
|
101
|
-
}
|
|
102
|
-
};
|
|
110
|
+
};
|
|
111
|
+
return globalCache.instances.set(namespace, storage), storage;
|
|
103
112
|
}
|
|
104
113
|
function createStorageValue(key) {
|
|
105
114
|
var storage = createStorage(`_v:${key}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createStorage_exports","__export","createStorage","createStorageValue","module","exports","import_driver","require","namespaces","Set","namespace","
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createStorage_exports","__export","createStorage","createStorageValue","module","exports","import_driver","require","_globalThis","_globalKey","globalKey","_","globalCache","globalThis","namespaces","Set","instances","Map","namespace","existing","get","add","prefix","prefixKey","key","storage","driver","getStorageDriver","raw","getItem","JSON","parse","set","setItem","stringify","remove","removeItem","has","keys","getAllKeys","filter","k","startsWith","map","slice","length","clear","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","err","return"],"sources":["../../../src/storage/createStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { getStorageDriver } from "./driver";
|
|
2
|
-
const
|
|
2
|
+
const globalKey = "__takeout_storage__", globalCache = globalThis[globalKey] ??= {
|
|
3
|
+
namespaces: /* @__PURE__ */ new Set(),
|
|
4
|
+
instances: /* @__PURE__ */ new Map()
|
|
5
|
+
};
|
|
3
6
|
function createStorage(namespace) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
const existing = globalCache.instances.get(namespace);
|
|
8
|
+
if (existing)
|
|
9
|
+
return existing;
|
|
10
|
+
globalCache.namespaces.add(namespace);
|
|
11
|
+
const prefix = `${namespace}:`, prefixKey = (key) => `${prefix}${key}`, storage = {
|
|
9
12
|
get(key) {
|
|
10
13
|
const driver = getStorageDriver();
|
|
11
14
|
if (!driver) return;
|
|
@@ -48,6 +51,7 @@ function createStorage(namespace) {
|
|
|
48
51
|
driver && driver.setItem(prefixKey(key), value);
|
|
49
52
|
}
|
|
50
53
|
};
|
|
54
|
+
return globalCache.instances.set(namespace, storage), storage;
|
|
51
55
|
}
|
|
52
56
|
function createStorageValue(key) {
|
|
53
57
|
const storage = createStorage(`_v:${key}`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/storage/createStorage.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,wBAAwB;
|
|
4
|
+
"mappings": "AAAA,SAAS,wBAAwB;AAGjC,MAAM,YAAY,uBACZ,cAAgB,WAAmB,SAAS,MAAM;AAAA,EACtD,YAAY,oBAAI,IAAY;AAAA,EAC5B,WAAW,oBAAI,IAA+B;AAChD;AAsCO,SAAS,cAAmC,WAAkC;AAEnF,QAAM,WAAW,YAAY,UAAU,IAAI,SAAS;AACpD,MAAI;AACF,WAAO;AAGT,cAAY,WAAW,IAAI,SAAS;AAEpC,QAAM,SAAS,GAAG,SAAS,KACrB,YAAY,CAAC,QAAgB,GAAG,MAAM,GAAG,GAAG,IAE5C,UAAyB;AAAA,IAC7B,IAAI,KAAuB;AACzB,YAAM,SAAS,iBAAiB;AAChC,UAAI,CAAC,OAAQ;AACb,YAAM,MAAM,OAAO,QAAQ,UAAU,GAAG,CAAC;AACzC,UAAI,OAAO;AACX,YAAI;AACF,iBAAO,KAAK,MAAM,GAAG;AAAA,QACvB,QAAQ;AACN;AAAA,QACF;AAAA,IACF;AAAA,IAEA,IAAI,KAAQ,OAAgB;AAC1B,YAAM,SAAS,iBAAiB;AAChC,MAAK,UACL,OAAO,QAAQ,UAAU,GAAG,GAAG,KAAK,UAAU,KAAK,CAAC;AAAA,IACtD;AAAA,IAEA,OAAO,KAAc;AACnB,YAAM,SAAS,iBAAiB;AAChC,MAAK,UACL,OAAO,WAAW,UAAU,GAAG,CAAC;AAAA,IAClC;AAAA,IAEA,IAAI,KAAiB;AACnB,YAAM,SAAS,iBAAiB;AAChC,aAAK,SACE,OAAO,QAAQ,UAAU,GAAG,CAAC,KAAK,OADrB;AAAA,IAEtB;AAAA,IAEA,OAAY;AACV,YAAM,SAAS,iBAAiB;AAChC,aAAK,SACE,OACJ,WAAW,EACX,OAAO,CAAC,MAAM,EAAE,WAAW,MAAM,CAAC,EAClC,IAAI,CAAC,MAAM,EAAE,MAAM,OAAO,MAAM,CAAM,IAJrB,CAAC;AAAA,IAKvB;AAAA,IAEA,QAAc;AACZ,YAAM,SAAS,iBAAiB;AAChC,UAAK;AACL,mBAAW,OAAO,KAAK,KAAK;AAC1B,iBAAO,WAAW,UAAU,GAAG,CAAC;AAAA,IAEpC;AAAA,IAEA,QAAQ,KAAuB;AAC7B,YAAM,SAAS,iBAAiB;AAChC,aAAK,SACE,OAAO,QAAQ,UAAU,GAAG,CAAC,KAAK,OADrB;AAAA,IAEtB;AAAA,IAEA,QAAQ,KAAQ,OAAqB;AACnC,YAAM,SAAS,iBAAiB;AAChC,MAAK,UACL,OAAO,QAAQ,UAAU,GAAG,GAAG,KAAK;AAAA,IACtC;AAAA,EACF;AAEA,qBAAY,UAAU,IAAI,WAAW,OAAO,GACrC;AACT;AA0BO,SAAS,mBAAsB,KAA8B;AAClE,QAAM,UAAU,cAA0B,MAAM,GAAG,EAAE;AACrD,SAAO;AAAA,IACL,KAAK,MAAqB,QAAQ,IAAI,OAAO;AAAA,IAC7C,KAAK,CAAC,UAAmB,QAAQ,IAAI,SAAS,KAAK;AAAA,IACnD,QAAQ,MAAY,QAAQ,OAAO,OAAO;AAAA,IAC1C,KAAK,MAAe,QAAQ,IAAI,OAAO;AAAA,EACzC;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,50 +1,56 @@
|
|
|
1
1
|
import { getStorageDriver } from "./driver.mjs";
|
|
2
|
-
const
|
|
2
|
+
const globalKey = "__takeout_storage__",
|
|
3
|
+
globalCache = globalThis[globalKey] ??= {
|
|
4
|
+
namespaces: /* @__PURE__ */new Set(),
|
|
5
|
+
instances: /* @__PURE__ */new Map()
|
|
6
|
+
};
|
|
3
7
|
function createStorage(namespace) {
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
const existing = globalCache.instances.get(namespace);
|
|
9
|
+
if (existing) return existing;
|
|
10
|
+
globalCache.namespaces.add(namespace);
|
|
6
11
|
const prefix = `${namespace}:`,
|
|
7
|
-
prefixKey = key => `${prefix}${key}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
prefixKey = key => `${prefix}${key}`,
|
|
13
|
+
storage = {
|
|
14
|
+
get(key) {
|
|
15
|
+
const driver = getStorageDriver();
|
|
16
|
+
if (!driver) return;
|
|
17
|
+
const raw = driver.getItem(prefixKey(key));
|
|
18
|
+
if (raw != null) try {
|
|
19
|
+
return JSON.parse(raw);
|
|
20
|
+
} catch {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
set(key, value) {
|
|
25
|
+
const driver = getStorageDriver();
|
|
26
|
+
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
27
|
+
},
|
|
28
|
+
remove(key) {
|
|
29
|
+
const driver = getStorageDriver();
|
|
30
|
+
driver && driver.removeItem(prefixKey(key));
|
|
31
|
+
},
|
|
32
|
+
has(key) {
|
|
33
|
+
const driver = getStorageDriver();
|
|
34
|
+
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
35
|
+
},
|
|
36
|
+
keys() {
|
|
37
|
+
const driver = getStorageDriver();
|
|
38
|
+
return driver ? driver.getAllKeys().filter(k => k.startsWith(prefix)).map(k => k.slice(prefix.length)) : [];
|
|
39
|
+
},
|
|
40
|
+
clear() {
|
|
41
|
+
const driver = getStorageDriver();
|
|
42
|
+
if (driver) for (const key of this.keys()) driver.removeItem(prefixKey(key));
|
|
43
|
+
},
|
|
44
|
+
getItem(key) {
|
|
45
|
+
const driver = getStorageDriver();
|
|
46
|
+
return driver ? driver.getItem(prefixKey(key)) ?? null : null;
|
|
47
|
+
},
|
|
48
|
+
setItem(key, value) {
|
|
49
|
+
const driver = getStorageDriver();
|
|
50
|
+
driver && driver.setItem(prefixKey(key), value);
|
|
17
51
|
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const driver = getStorageDriver();
|
|
21
|
-
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
22
|
-
},
|
|
23
|
-
remove(key) {
|
|
24
|
-
const driver = getStorageDriver();
|
|
25
|
-
driver && driver.removeItem(prefixKey(key));
|
|
26
|
-
},
|
|
27
|
-
has(key) {
|
|
28
|
-
const driver = getStorageDriver();
|
|
29
|
-
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
30
|
-
},
|
|
31
|
-
keys() {
|
|
32
|
-
const driver = getStorageDriver();
|
|
33
|
-
return driver ? driver.getAllKeys().filter(k => k.startsWith(prefix)).map(k => k.slice(prefix.length)) : [];
|
|
34
|
-
},
|
|
35
|
-
clear() {
|
|
36
|
-
const driver = getStorageDriver();
|
|
37
|
-
if (driver) for (const key of this.keys()) driver.removeItem(prefixKey(key));
|
|
38
|
-
},
|
|
39
|
-
getItem(key) {
|
|
40
|
-
const driver = getStorageDriver();
|
|
41
|
-
return driver ? driver.getItem(prefixKey(key)) ?? null : null;
|
|
42
|
-
},
|
|
43
|
-
setItem(key, value) {
|
|
44
|
-
const driver = getStorageDriver();
|
|
45
|
-
driver && driver.setItem(prefixKey(key), value);
|
|
46
|
-
}
|
|
47
|
-
};
|
|
52
|
+
};
|
|
53
|
+
return globalCache.instances.set(namespace, storage), storage;
|
|
48
54
|
}
|
|
49
55
|
function createStorageValue(key) {
|
|
50
56
|
const storage = createStorage(`_v:${key}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getStorageDriver","namespaces","Set","createStorage","namespace","
|
|
1
|
+
{"version":3,"names":["getStorageDriver","globalKey","globalCache","globalThis","namespaces","Set","instances","Map","createStorage","namespace","existing","get","add","prefix","prefixKey","key","storage","driver","raw","getItem","JSON","parse","set","value","setItem","stringify","remove","removeItem","has","keys","getAllKeys","filter","k","startsWith","map","slice","length","clear","createStorageValue"],"sources":["../../../src/storage/createStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,77 +1,86 @@
|
|
|
1
1
|
import { getStorageDriver } from "./driver.native.js";
|
|
2
|
-
var
|
|
2
|
+
var _globalThis,
|
|
3
|
+
_globalKey,
|
|
4
|
+
globalKey = "__takeout_storage__",
|
|
5
|
+
_,
|
|
6
|
+
globalCache = (_ = (_globalThis = globalThis)[_globalKey = globalKey]) !== null && _ !== void 0 ? _ : _globalThis[_globalKey] = {
|
|
7
|
+
namespaces: /* @__PURE__ */new Set(),
|
|
8
|
+
instances: /* @__PURE__ */new Map()
|
|
9
|
+
};
|
|
3
10
|
function createStorage(namespace) {
|
|
4
|
-
|
|
5
|
-
|
|
11
|
+
var existing = globalCache.instances.get(namespace);
|
|
12
|
+
if (existing) return existing;
|
|
13
|
+
globalCache.namespaces.add(namespace);
|
|
6
14
|
var prefix = `${namespace}:`,
|
|
7
15
|
prefixKey = function (key) {
|
|
8
16
|
return `${prefix}${key}`;
|
|
9
|
-
};
|
|
10
|
-
return {
|
|
11
|
-
get(key) {
|
|
12
|
-
var driver = getStorageDriver();
|
|
13
|
-
if (driver) {
|
|
14
|
-
var raw = driver.getItem(prefixKey(key));
|
|
15
|
-
if (raw != null) try {
|
|
16
|
-
return JSON.parse(raw);
|
|
17
|
-
} catch {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
set(key, value) {
|
|
23
|
-
var driver = getStorageDriver();
|
|
24
|
-
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
25
|
-
},
|
|
26
|
-
remove(key) {
|
|
27
|
-
var driver = getStorageDriver();
|
|
28
|
-
driver && driver.removeItem(prefixKey(key));
|
|
29
|
-
},
|
|
30
|
-
has(key) {
|
|
31
|
-
var driver = getStorageDriver();
|
|
32
|
-
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
33
17
|
},
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var driver = getStorageDriver();
|
|
44
|
-
if (driver) {
|
|
45
|
-
var _iteratorNormalCompletion = !0,
|
|
46
|
-
_didIteratorError = !1,
|
|
47
|
-
_iteratorError = void 0;
|
|
48
|
-
try {
|
|
49
|
-
for (var _iterator = this.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
50
|
-
var key = _step.value;
|
|
51
|
-
driver.removeItem(prefixKey(key));
|
|
18
|
+
storage = {
|
|
19
|
+
get(key) {
|
|
20
|
+
var driver = getStorageDriver();
|
|
21
|
+
if (driver) {
|
|
22
|
+
var raw = driver.getItem(prefixKey(key));
|
|
23
|
+
if (raw != null) try {
|
|
24
|
+
return JSON.parse(raw);
|
|
25
|
+
} catch {
|
|
26
|
+
return;
|
|
52
27
|
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
set(key, value) {
|
|
31
|
+
var driver = getStorageDriver();
|
|
32
|
+
driver && driver.setItem(prefixKey(key), JSON.stringify(value));
|
|
33
|
+
},
|
|
34
|
+
remove(key) {
|
|
35
|
+
var driver = getStorageDriver();
|
|
36
|
+
driver && driver.removeItem(prefixKey(key));
|
|
37
|
+
},
|
|
38
|
+
has(key) {
|
|
39
|
+
var driver = getStorageDriver();
|
|
40
|
+
return driver ? driver.getItem(prefixKey(key)) != null : !1;
|
|
41
|
+
},
|
|
42
|
+
keys() {
|
|
43
|
+
var driver = getStorageDriver();
|
|
44
|
+
return driver ? driver.getAllKeys().filter(function (k) {
|
|
45
|
+
return k.startsWith(prefix);
|
|
46
|
+
}).map(function (k) {
|
|
47
|
+
return k.slice(prefix.length);
|
|
48
|
+
}) : [];
|
|
49
|
+
},
|
|
50
|
+
clear() {
|
|
51
|
+
var driver = getStorageDriver();
|
|
52
|
+
if (driver) {
|
|
53
|
+
var _iteratorNormalCompletion = !0,
|
|
54
|
+
_didIteratorError = !1,
|
|
55
|
+
_iteratorError = void 0;
|
|
56
56
|
try {
|
|
57
|
-
|
|
57
|
+
for (var _iterator = this.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
58
|
+
var key = _step.value;
|
|
59
|
+
driver.removeItem(prefixKey(key));
|
|
60
|
+
}
|
|
61
|
+
} catch (err) {
|
|
62
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
58
63
|
} finally {
|
|
59
|
-
|
|
64
|
+
try {
|
|
65
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
66
|
+
} finally {
|
|
67
|
+
if (_didIteratorError) throw _iteratorError;
|
|
68
|
+
}
|
|
60
69
|
}
|
|
61
70
|
}
|
|
71
|
+
},
|
|
72
|
+
getItem(key) {
|
|
73
|
+
var driver = getStorageDriver();
|
|
74
|
+
if (!driver) return null;
|
|
75
|
+
var _driver_getItem;
|
|
76
|
+
return (_driver_getItem = driver.getItem(prefixKey(key))) !== null && _driver_getItem !== void 0 ? _driver_getItem : null;
|
|
77
|
+
},
|
|
78
|
+
setItem(key, value) {
|
|
79
|
+
var driver = getStorageDriver();
|
|
80
|
+
driver && driver.setItem(prefixKey(key), value);
|
|
62
81
|
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
var driver = getStorageDriver();
|
|
66
|
-
if (!driver) return null;
|
|
67
|
-
var _driver_getItem;
|
|
68
|
-
return (_driver_getItem = driver.getItem(prefixKey(key))) !== null && _driver_getItem !== void 0 ? _driver_getItem : null;
|
|
69
|
-
},
|
|
70
|
-
setItem(key, value) {
|
|
71
|
-
var driver = getStorageDriver();
|
|
72
|
-
driver && driver.setItem(prefixKey(key), value);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
82
|
+
};
|
|
83
|
+
return globalCache.instances.set(namespace, storage), storage;
|
|
75
84
|
}
|
|
76
85
|
function createStorageValue(key) {
|
|
77
86
|
var storage = createStorage(`_v:${key}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getStorageDriver","namespaces","Set","createStorage","namespace","
|
|
1
|
+
{"version":3,"names":["getStorageDriver","_globalThis","_globalKey","globalKey","_","globalCache","globalThis","namespaces","Set","instances","Map","createStorage","namespace","existing","get","add","prefix","prefixKey","key","storage","driver","raw","getItem","JSON","parse","set","value","setItem","stringify","remove","removeItem","has","keys","getAllKeys","filter","k","startsWith","map","slice","length","clear","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","err","return"],"sources":["../../../src/storage/createStorage.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,gBAAA,QAAwB;AAGjC,IAAAC,WAAM;EAAAC,UAAY;EAAAC,SAAA,GACZ,qBAAgB;EAAAC,CAAA;EAAmBC,WAAS,GAAM,CAAAD,CAAA,IAAAH,WAAA,GAAAK,UAAA,EAAAJ,UAAA,GAAAC,SAAA,eAAAC,CAAA,cAAAA,CAAA,GAAAH,WAAA,CAAAC,UAAA;IACtDK,UAAA,EAAY,mBAAIC,GAAA,CAAY;IAC5BC,SAAA,EAAW,mBAAIC,GAAA,CAA+B;EAChD;AAsCO,SAASC,cAAmCC,SAAA,EAAkC;EAEnF,IAAAC,QAAM,GAAAR,WAAW,CAAAI,SAAY,CAAAK,GAAU,CAAAF,SAAI;EAC3C,IAAIC,QAAA,EACF,OAAOA,QAAA;EAGTR,WAAA,CAAYE,UAAA,CAAWQ,GAAA,CAAIH,SAAS;EAEpC,IAAAI,MAAM,MAASJ,SAAG,GAAS;IAAAK,SACrB,YAAAA,CAAaC,GAAgB,EAAG;MAGpC,OAAI,GAAuBF,MAAA,GAAAE,GAAA;IACzB;IAAAC,OAAM;MACNL,IAAAI,GAAK;QACL,IAAAE,MAAM,GAAMpB,gBAAe;QAC3B,IAAIoB,MAAA,EAAO;UACX,IAAIC,GAAA,GAAAD,MAAA,CAAAE,OAAA,CAAAL,SAAA,CAAAC,GAAA;UACF,IAAAG,GAAA,IAAO,IAAK,EACd;YACE,OAAAE,IAAA,CAAAC,KAAA,CAAAH,GAAA;UACF;YACF;UAEI;QACF;MACA;MAEFI,IAAAP,GAAA,EAAAQ,KAAA;QAEA,IAAAN,MAAqB,GAAApB,gBAAA;QACnBoB,MAAM,IAAAA,MAAS,CAAAO,OAAA,CAAAV,SAAiB,CAAAC,GAAA,GAAAK,IAAA,CAAAK,SAAA,CAAAF,KAAA;MAChC;MAEFG,OAAAX,GAAA;QAEA,IAAIE,MAAiB,GAAApB,gBAAA;QACnBoB,MAAM,IAAAA,MAAS,CAAAU,UAAA,CAAAb,SAAiB,CAAAC,GAAA;MAChC;MAEFa,IAAAb,GAAA;QAEA,IAAAE,MAAY,GAAApB,gBAAA;QACV,OAAMoB,MAAA,GAASA,MAAA,CAAAE,OAAA,CAAAL,SAAiB,CAAAC,GAAA;MAChC;MAKFc,KAAA;QAEA,IAAAZ,MAAc,GAAApB,gBAAA;QACZ,OAAMoB,MAAA,GAASA,MAAA,CAAAa,UAAiB,GAAAC,MAAA,WAAAC,CAAA;UAChC,OAAKA,CAAA,CAAAC,UAAA,CAAApB,MAAA;QACL,GAAAqB,GAAA,WAAWF,CAAA;UACT,OAAAA,CAAA,CAAOG,KAAA,CAAAtB,MAAW,CAAAuB,MAAA;QAEtB;MAEA;MACEC,MAAA,EAAM;QACN,IAAApB,MAAK,GAAApB,gBACS,EAAQ;QACxB,IAAAoB,MAAA;UAEA,IAAQqB,yBAA6B;YAAAC,iBAAA;YAAAC,cAAA;UACnC,IAAM;YACD,SACLC,SAAO,GAAQ,KAAAZ,IAAA,CAAU,EAAAa,MAAM,CAAAC,QAAK,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;cACtC,IAAAvB,GAAA,GAAA6B,KAAA,CAAArB,KAAA;cACFN,MAAA,CAAAU,UAAA,CAAAb,SAAA,CAAAC,GAAA;YAEA;UAEF,SAAAgC,GAAA;YA0BgBR,iBAAA,GAAsB,IAA8BC,cAAA,GAAAO,GAAA;UAC5D,UAAU;YACT;cACA,CAAAT,yBAAwC,IAAAG,SAAA,CAAAO,MAAA,YAAAP,SAAA,CAAAO,MAAA;YACvC,UAAmB;cACjB,IAAAT,iBAA2B,EAC9B,MAAeC,cAAmB;YACzC;UACF","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { getStorageDriver } from './driver'
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// hmr-safe: store caches on globalThis so they survive module reloads
|
|
4
|
+
const globalKey = '__takeout_storage__'
|
|
5
|
+
const globalCache = ((globalThis as any)[globalKey] ??= {
|
|
6
|
+
namespaces: new Set<string>(),
|
|
7
|
+
instances: new Map<string, Storage<any, any>>(),
|
|
8
|
+
}) as {
|
|
9
|
+
namespaces: Set<string>
|
|
10
|
+
instances: Map<string, Storage<any, any>>
|
|
11
|
+
}
|
|
4
12
|
|
|
5
13
|
/**
|
|
6
14
|
* namespaced storage interface with JSON serialization
|
|
@@ -27,8 +35,8 @@ export interface Storage<K extends string = string, V = unknown> {
|
|
|
27
35
|
}
|
|
28
36
|
|
|
29
37
|
/**
|
|
30
|
-
* create a namespaced storage instance
|
|
31
|
-
* @param namespace - unique prefix for all keys
|
|
38
|
+
* create a namespaced storage instance (hmr-safe, returns existing instance if already created)
|
|
39
|
+
* @param namespace - unique prefix for all keys
|
|
32
40
|
* @returns storage instance with get/set (JSON) and getItem/setItem (raw) methods
|
|
33
41
|
* @example
|
|
34
42
|
* const store = createStorage<'token' | 'user', string>('auth')
|
|
@@ -36,15 +44,18 @@ export interface Storage<K extends string = string, V = unknown> {
|
|
|
36
44
|
* store.get('token') // 'abc123'
|
|
37
45
|
*/
|
|
38
46
|
export function createStorage<K extends string, V>(namespace: string): Storage<K, V> {
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
// return existing instance for hmr safety
|
|
48
|
+
const existing = globalCache.instances.get(namespace)
|
|
49
|
+
if (existing) {
|
|
50
|
+
return existing as Storage<K, V>
|
|
41
51
|
}
|
|
42
|
-
|
|
52
|
+
|
|
53
|
+
globalCache.namespaces.add(namespace)
|
|
43
54
|
|
|
44
55
|
const prefix = `${namespace}:`
|
|
45
56
|
const prefixKey = (key: string) => `${prefix}${key}`
|
|
46
57
|
|
|
47
|
-
|
|
58
|
+
const storage: Storage<K, V> = {
|
|
48
59
|
get(key: K): V | undefined {
|
|
49
60
|
const driver = getStorageDriver()
|
|
50
61
|
if (!driver) return undefined
|
|
@@ -104,6 +115,9 @@ export function createStorage<K extends string, V>(namespace: string): Storage<K
|
|
|
104
115
|
driver.setItem(prefixKey(key), value)
|
|
105
116
|
},
|
|
106
117
|
}
|
|
118
|
+
|
|
119
|
+
globalCache.instances.set(namespace, storage)
|
|
120
|
+
return storage
|
|
107
121
|
}
|
|
108
122
|
|
|
109
123
|
/**
|