@koine/browser 2.0.0-beta.2 → 2.0.0-beta.4
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/createStorage.js +93 -94
- package/createStorage.mjs +56 -69
- package/getZonedDate.js +28 -33
- package/getZonedDate.mjs +6 -12
- package/gtagPageview.js +33 -27
- package/gtagPageview.mjs +13 -20
- package/index.js +71 -32
- package/isIE.js +23 -15
- package/isIE.mjs +2 -4
- package/isMobile.js +24 -16
- package/isMobile.mjs +3 -5
- package/navigateToHash.js +23 -16
- package/navigateToHash.mjs +2 -4
- package/navigateToHashParams.js +26 -20
- package/navigateToHashParams.mjs +5 -8
- package/navigateToMergedHashParams.js +24 -17
- package/navigateToMergedHashParams.mjs +2 -5
- package/navigateToMergedParams.js +24 -17
- package/navigateToMergedParams.mjs +2 -4
- package/navigateToParams.js +26 -20
- package/navigateToParams.mjs +3 -5
- package/navigateToUrl.js +20 -8
- package/navigateToUrl.mjs +1 -3
- package/navigateWithoutUrlParam.js +25 -17
- package/navigateWithoutUrlParam.mjs +4 -5
- package/package.json +12 -10
- package/redirectTo.js +23 -15
- package/redirectTo.mjs +3 -4
- package/storage.js +23 -11
- package/storage.mjs +2 -3
- package/storageClient.js +70 -66
- package/storageClient.mjs +41 -49
package/navigateToUrl.js
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.navigateToUrl = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* It updates the browser's location URL with global `history` object
|
|
6
3
|
*
|
|
7
4
|
* @category location
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
*/ "use strict";
|
|
6
|
+
Object.defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
function _export(target, all) {
|
|
10
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: all[name]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
_export(exports, {
|
|
16
|
+
navigateToUrl: function() {
|
|
17
|
+
return navigateToUrl;
|
|
18
|
+
},
|
|
19
|
+
default: function() {
|
|
20
|
+
return _default;
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
function navigateToUrl(url = "", replace) {
|
|
11
24
|
if (url) {
|
|
12
25
|
history[replace ? "replaceState" : "pushState"](history.state, "", url);
|
|
13
26
|
}
|
|
14
27
|
}
|
|
15
|
-
|
|
16
|
-
exports.default = navigateToUrl;
|
|
28
|
+
const _default = navigateToUrl;
|
package/navigateToUrl.mjs
CHANGED
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
* It updates the browser's location URL with global `history` object
|
|
3
3
|
*
|
|
4
4
|
* @category location
|
|
5
|
-
*/
|
|
6
|
-
export function navigateToUrl(url, replace) {
|
|
7
|
-
if (url === void 0) { url = ""; }
|
|
5
|
+
*/ export function navigateToUrl(url = "", replace) {
|
|
8
6
|
if (url) {
|
|
9
7
|
history[replace ? "replaceState" : "pushState"](history.state, "", url);
|
|
10
8
|
}
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
navigateWithoutUrlParam: function() {
|
|
13
|
+
return navigateWithoutUrlParam;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
20
|
+
const _getUrlQueryParams = /*#__PURE__*/ _interop_require_default._(require("@koine/utils/getUrlQueryParams"));
|
|
21
|
+
const _navigateToParams = /*#__PURE__*/ _interop_require_default._(require("./navigateToParams"));
|
|
13
22
|
function navigateWithoutUrlParam(paramName, replace) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
for
|
|
23
|
+
const params = {};
|
|
24
|
+
const currentParams = (0, _getUrlQueryParams.default)();
|
|
25
|
+
for(const key in currentParams){
|
|
17
26
|
if (key !== paramName) {
|
|
18
27
|
params[key] = currentParams[key];
|
|
19
28
|
}
|
|
20
29
|
}
|
|
21
|
-
return (0,
|
|
30
|
+
return (0, _navigateToParams.default)(params, replace);
|
|
22
31
|
}
|
|
23
|
-
|
|
24
|
-
exports.default = navigateWithoutUrlParam;
|
|
32
|
+
const _default = navigateWithoutUrlParam;
|
|
@@ -5,11 +5,10 @@ import navigateToParams from "./navigateToParams";
|
|
|
5
5
|
*
|
|
6
6
|
* @category location
|
|
7
7
|
* @param replace Replace URL instead of pushing it in the history stack. By default it pushes it.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
for (var key in currentParams) {
|
|
8
|
+
*/ export function navigateWithoutUrlParam(paramName, replace) {
|
|
9
|
+
const params = {};
|
|
10
|
+
const currentParams = getUrlQueryParams();
|
|
11
|
+
for(const key in currentParams){
|
|
13
12
|
if (key !== paramName) {
|
|
14
13
|
params[key] = currentParams[key];
|
|
15
14
|
}
|
package/package.json
CHANGED
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
"name": "@koine/browser",
|
|
3
3
|
"sideEffects": false,
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"clsx": "1.2.1",
|
|
5
|
+
"clsx": "^1.2.1",
|
|
6
6
|
"date-fns-tz": "^2.0.0",
|
|
7
7
|
"ts-debounce": "^4.0.0",
|
|
8
|
-
"type-fest": "^3.
|
|
9
|
-
},
|
|
10
|
-
"peerDependencies": {
|
|
11
|
-
"@koine/dom": "2.0.0-beta.2",
|
|
12
|
-
"@koine/utils": "2.0.0-beta.2",
|
|
13
|
-
"tslib": "2.5.3"
|
|
8
|
+
"type-fest": "^3.12.0"
|
|
14
9
|
},
|
|
10
|
+
"peerDependencies": {},
|
|
11
|
+
"module": "./index.mjs",
|
|
15
12
|
"main": "./index.js",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"import": "./index.js",
|
|
16
|
+
"require": "./index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
16
19
|
"types": "./index.d.ts",
|
|
17
|
-
"version": "2.0.0-beta.
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
+
"version": "2.0.0-beta.4"
|
|
21
|
+
}
|
package/redirectTo.js
CHANGED
|
@@ -1,20 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
redirectTo: function() {
|
|
13
|
+
return redirectTo;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
20
|
+
const _buildUrlQueryString = /*#__PURE__*/ _interop_require_default._(require("@koine/utils/buildUrlQueryString"));
|
|
21
|
+
const _isBrowser = /*#__PURE__*/ _interop_require_default._(require("@koine/utils/isBrowser"));
|
|
13
22
|
function redirectTo(url, params) {
|
|
14
|
-
if (
|
|
15
|
-
|
|
23
|
+
if (_isBrowser.default) {
|
|
24
|
+
const queryString = (0, _buildUrlQueryString.default)(params);
|
|
16
25
|
location.href = url.replace(/\?+$/g, "") + queryString;
|
|
17
26
|
}
|
|
18
27
|
}
|
|
19
|
-
|
|
20
|
-
exports.default = redirectTo;
|
|
28
|
+
const _default = redirectTo;
|
package/redirectTo.mjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import isBrowser from "@koine/utils/isBrowser";
|
|
2
1
|
import buildUrlQueryString from "@koine/utils/buildUrlQueryString";
|
|
2
|
+
import isBrowser from "@koine/utils/isBrowser";
|
|
3
3
|
/**
|
|
4
4
|
* Redirect to url with params {optionally}, removes eventual trailing question
|
|
5
5
|
* marks from the given URL, it uses `location`
|
|
6
6
|
*
|
|
7
7
|
* @category location
|
|
8
|
-
*/
|
|
9
|
-
export function redirectTo(url, params) {
|
|
8
|
+
*/ export function redirectTo(url, params) {
|
|
10
9
|
if (isBrowser) {
|
|
11
|
-
|
|
10
|
+
const queryString = buildUrlQueryString(params);
|
|
12
11
|
location.href = url.replace(/\?+$/g, "") + queryString;
|
|
13
12
|
}
|
|
14
13
|
}
|
package/storage.js
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
storage: function() {
|
|
13
|
+
return storage;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
20
|
+
const _storageClient = /*#__PURE__*/ _interop_require_default._(require("./storageClient"));
|
|
21
|
+
const storage = {
|
|
22
|
+
l: (0, _storageClient.default)(),
|
|
23
|
+
s: (0, _storageClient.default)(true)
|
|
12
24
|
};
|
|
13
|
-
|
|
25
|
+
const _default = storage;
|
package/storage.mjs
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import storageClient from "./storageClient";
|
|
2
2
|
/**
|
|
3
3
|
* Storage, for `localStorage` and `sessionStorage`
|
|
4
|
-
*/
|
|
5
|
-
export var storage = {
|
|
4
|
+
*/ export const storage = {
|
|
6
5
|
l: storageClient(),
|
|
7
|
-
s: storageClient(true)
|
|
6
|
+
s: storageClient(true)
|
|
8
7
|
};
|
|
9
8
|
export default storage;
|
package/storageClient.js
CHANGED
|
@@ -1,108 +1,112 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
storageClient: function() {
|
|
13
|
+
return storageClient;
|
|
14
|
+
},
|
|
15
|
+
default: function() {
|
|
16
|
+
return _default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
20
|
+
const _isBrowser = /*#__PURE__*/ _interop_require_default._(require("@koine/utils/isBrowser"));
|
|
21
|
+
const _isString = /*#__PURE__*/ _interop_require_default._(require("@koine/utils/isString"));
|
|
22
|
+
const methodsMap = {
|
|
23
|
+
g: "getItem",
|
|
24
|
+
s: "setItem",
|
|
25
|
+
r: "removeItem"
|
|
26
|
+
};
|
|
27
|
+
const storageClient = (useSessionStorage)=>{
|
|
28
|
+
const nativeMethod = (method, key, value)=>_isBrowser.default ? window[useSessionStorage ? "sessionStorage" : "localStorage"][methodsMap[method]](key, value) : ()=>{
|
|
29
|
+
if (process.env["NODE_ENV"] !== "production") {
|
|
30
|
+
console.warn(`[@koine/utils:storageClient]: ${useSessionStorage ? "sessionStorage" : "localStorage"} does not exists outside of browser.`);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const get = (key, transform, defaultValue)=>{
|
|
34
|
+
let value = defaultValue ?? null;
|
|
23
35
|
if (process.env["NODE_ENV"] !== "production") {
|
|
24
|
-
if (!
|
|
25
|
-
console.log(
|
|
36
|
+
if (!_isBrowser.default) {
|
|
37
|
+
console.log(`[@koine/utils:storage] called 'get' outside of browser with default value '${JSON.stringify(defaultValue)}'.`);
|
|
26
38
|
}
|
|
27
39
|
}
|
|
28
|
-
if (
|
|
29
|
-
|
|
40
|
+
if (_isBrowser.default) {
|
|
41
|
+
let stored = nativeMethod("g", key);
|
|
30
42
|
if (stored) {
|
|
31
43
|
stored = transform ? transform(stored) : stored;
|
|
32
44
|
try {
|
|
33
|
-
|
|
34
|
-
if (parsed)
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
catch (_e) {
|
|
45
|
+
const parsed = JSON.parse(stored);
|
|
46
|
+
if (parsed) value = parsed;
|
|
47
|
+
} catch (_e) {
|
|
38
48
|
value = stored;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
// if (process.env["NODE_ENV"] !== "production") {
|
|
50
|
+
// console.warn(
|
|
51
|
+
// `[@koine/utils:storage]: 'get' failed to parse stored value as JSON. Plain '${stored}' value is returned.`
|
|
52
|
+
// );
|
|
53
|
+
// }
|
|
44
54
|
}
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
57
|
return value;
|
|
48
58
|
};
|
|
49
|
-
|
|
50
|
-
if (transform === void 0) { transform = function (value) { return value; }; }
|
|
59
|
+
const set = (key, value, transform = (value)=>value)=>{
|
|
51
60
|
if (process.env["NODE_ENV"] !== "production") {
|
|
52
|
-
if (!
|
|
53
|
-
console.log(
|
|
61
|
+
if (!_isBrowser.default) {
|
|
62
|
+
console.log(`[@koine/utils:storage] called 'set' outside of browser does not work.`);
|
|
54
63
|
}
|
|
55
64
|
}
|
|
56
|
-
if (
|
|
65
|
+
if (_isBrowser.default) {
|
|
57
66
|
try {
|
|
58
|
-
|
|
59
|
-
? transform(value)
|
|
60
|
-
: transform(JSON.stringify(value));
|
|
67
|
+
const transformedValue = (0, _isString.default)(value) ? transform(value) : transform(JSON.stringify(value));
|
|
61
68
|
nativeMethod("s", key, transformedValue);
|
|
62
|
-
}
|
|
63
|
-
catch (_e) {
|
|
69
|
+
} catch (_e) {
|
|
64
70
|
if (process.env["NODE_ENV"] !== "production") {
|
|
65
|
-
console.warn(
|
|
71
|
+
console.warn(`[@koine/utils:createStorage]: 'set' error.`, _e);
|
|
66
72
|
}
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
};
|
|
70
|
-
|
|
76
|
+
const remove = (key)=>{
|
|
71
77
|
if (process.env["NODE_ENV"] !== "production") {
|
|
72
|
-
if (!
|
|
73
|
-
console.log(
|
|
78
|
+
if (!_isBrowser.default) {
|
|
79
|
+
console.log(`[@koine/utils:storage] called 'remove' outside of browser does not work.`);
|
|
74
80
|
}
|
|
75
81
|
}
|
|
76
|
-
if (
|
|
82
|
+
if (_isBrowser.default) {
|
|
77
83
|
try {
|
|
78
84
|
nativeMethod("r", key);
|
|
79
|
-
}
|
|
80
|
-
catch (_e) {
|
|
85
|
+
} catch (_e) {
|
|
81
86
|
if (process.env["NODE_ENV"] !== "production") {
|
|
82
|
-
console.warn(
|
|
87
|
+
console.warn(`[@koine/utils:createStorage]: 'remove' error.`, _e);
|
|
83
88
|
}
|
|
84
89
|
}
|
|
85
90
|
}
|
|
86
91
|
};
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
const has = (key, defaultValue)=>{
|
|
93
|
+
let value = defaultValue ?? false;
|
|
89
94
|
if (process.env["NODE_ENV"] !== "production") {
|
|
90
|
-
if (!
|
|
91
|
-
console.log(
|
|
95
|
+
if (!_isBrowser.default) {
|
|
96
|
+
console.log(`[@koine/utils:storage] called 'has' outside of browser with default value '${JSON.stringify(defaultValue)}'.`);
|
|
92
97
|
}
|
|
93
98
|
}
|
|
94
|
-
if (
|
|
95
|
-
|
|
96
|
-
value = stored
|
|
99
|
+
if (_isBrowser.default) {
|
|
100
|
+
const stored = nativeMethod("g", key);
|
|
101
|
+
value = stored ?? false;
|
|
97
102
|
}
|
|
98
103
|
return value;
|
|
99
104
|
};
|
|
100
105
|
return {
|
|
101
|
-
get
|
|
102
|
-
set
|
|
103
|
-
remove
|
|
104
|
-
has
|
|
106
|
+
get,
|
|
107
|
+
set,
|
|
108
|
+
remove,
|
|
109
|
+
has
|
|
105
110
|
};
|
|
106
111
|
};
|
|
107
|
-
|
|
108
|
-
exports.default = exports.storageClient;
|
|
112
|
+
const _default = storageClient;
|
package/storageClient.mjs
CHANGED
|
@@ -1,103 +1,95 @@
|
|
|
1
1
|
import isBrowser from "@koine/utils/isBrowser";
|
|
2
2
|
import isString from "@koine/utils/isString";
|
|
3
|
-
|
|
3
|
+
const methodsMap = {
|
|
4
|
+
g: "getItem",
|
|
5
|
+
s: "setItem",
|
|
6
|
+
r: "removeItem"
|
|
7
|
+
};
|
|
4
8
|
/**
|
|
5
9
|
* Super minifiable `local/session Storage` client creator with SSR safety
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
var get = function (key, transform, defaultValue) {
|
|
18
|
-
var value = defaultValue !== null && defaultValue !== void 0 ? defaultValue : null;
|
|
10
|
+
*/ export const storageClient = (useSessionStorage)=>{
|
|
11
|
+
const nativeMethod = (method, key, value)=>isBrowser ? window[useSessionStorage ? "sessionStorage" : "localStorage"][methodsMap[method]](key, value) : ()=>{
|
|
12
|
+
if (process.env["NODE_ENV"] !== "production") {
|
|
13
|
+
console.warn(`[@koine/utils:storageClient]: ${useSessionStorage ? "sessionStorage" : "localStorage"} does not exists outside of browser.`);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const get = (key, transform, defaultValue)=>{
|
|
17
|
+
let value = defaultValue ?? null;
|
|
19
18
|
if (process.env["NODE_ENV"] !== "production") {
|
|
20
19
|
if (!isBrowser) {
|
|
21
|
-
console.log(
|
|
20
|
+
console.log(`[@koine/utils:storage] called 'get' outside of browser with default value '${JSON.stringify(defaultValue)}'.`);
|
|
22
21
|
}
|
|
23
22
|
}
|
|
24
23
|
if (isBrowser) {
|
|
25
|
-
|
|
24
|
+
let stored = nativeMethod("g", key);
|
|
26
25
|
if (stored) {
|
|
27
26
|
stored = transform ? transform(stored) : stored;
|
|
28
27
|
try {
|
|
29
|
-
|
|
30
|
-
if (parsed)
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
catch (_e) {
|
|
28
|
+
const parsed = JSON.parse(stored);
|
|
29
|
+
if (parsed) value = parsed;
|
|
30
|
+
} catch (_e) {
|
|
34
31
|
value = stored;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
// if (process.env["NODE_ENV"] !== "production") {
|
|
33
|
+
// console.warn(
|
|
34
|
+
// `[@koine/utils:storage]: 'get' failed to parse stored value as JSON. Plain '${stored}' value is returned.`
|
|
35
|
+
// );
|
|
36
|
+
// }
|
|
40
37
|
}
|
|
41
38
|
}
|
|
42
39
|
}
|
|
43
40
|
return value;
|
|
44
41
|
};
|
|
45
|
-
|
|
46
|
-
if (transform === void 0) { transform = function (value) { return value; }; }
|
|
42
|
+
const set = (key, value, transform = (value)=>value)=>{
|
|
47
43
|
if (process.env["NODE_ENV"] !== "production") {
|
|
48
44
|
if (!isBrowser) {
|
|
49
|
-
console.log(
|
|
45
|
+
console.log(`[@koine/utils:storage] called 'set' outside of browser does not work.`);
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
48
|
if (isBrowser) {
|
|
53
49
|
try {
|
|
54
|
-
|
|
55
|
-
? transform(value)
|
|
56
|
-
: transform(JSON.stringify(value));
|
|
50
|
+
const transformedValue = isString(value) ? transform(value) : transform(JSON.stringify(value));
|
|
57
51
|
nativeMethod("s", key, transformedValue);
|
|
58
|
-
}
|
|
59
|
-
catch (_e) {
|
|
52
|
+
} catch (_e) {
|
|
60
53
|
if (process.env["NODE_ENV"] !== "production") {
|
|
61
|
-
console.warn(
|
|
54
|
+
console.warn(`[@koine/utils:createStorage]: 'set' error.`, _e);
|
|
62
55
|
}
|
|
63
56
|
}
|
|
64
57
|
}
|
|
65
58
|
};
|
|
66
|
-
|
|
59
|
+
const remove = (key)=>{
|
|
67
60
|
if (process.env["NODE_ENV"] !== "production") {
|
|
68
61
|
if (!isBrowser) {
|
|
69
|
-
console.log(
|
|
62
|
+
console.log(`[@koine/utils:storage] called 'remove' outside of browser does not work.`);
|
|
70
63
|
}
|
|
71
64
|
}
|
|
72
65
|
if (isBrowser) {
|
|
73
66
|
try {
|
|
74
67
|
nativeMethod("r", key);
|
|
75
|
-
}
|
|
76
|
-
catch (_e) {
|
|
68
|
+
} catch (_e) {
|
|
77
69
|
if (process.env["NODE_ENV"] !== "production") {
|
|
78
|
-
console.warn(
|
|
70
|
+
console.warn(`[@koine/utils:createStorage]: 'remove' error.`, _e);
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
73
|
}
|
|
82
74
|
};
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
const has = (key, defaultValue)=>{
|
|
76
|
+
let value = defaultValue ?? false;
|
|
85
77
|
if (process.env["NODE_ENV"] !== "production") {
|
|
86
78
|
if (!isBrowser) {
|
|
87
|
-
console.log(
|
|
79
|
+
console.log(`[@koine/utils:storage] called 'has' outside of browser with default value '${JSON.stringify(defaultValue)}'.`);
|
|
88
80
|
}
|
|
89
81
|
}
|
|
90
82
|
if (isBrowser) {
|
|
91
|
-
|
|
92
|
-
value = stored
|
|
83
|
+
const stored = nativeMethod("g", key);
|
|
84
|
+
value = stored ?? false;
|
|
93
85
|
}
|
|
94
86
|
return value;
|
|
95
87
|
};
|
|
96
88
|
return {
|
|
97
|
-
get
|
|
98
|
-
set
|
|
99
|
-
remove
|
|
100
|
-
has
|
|
89
|
+
get,
|
|
90
|
+
set,
|
|
91
|
+
remove,
|
|
92
|
+
has
|
|
101
93
|
};
|
|
102
94
|
};
|
|
103
95
|
export default storageClient;
|