@koine/browser 2.0.0-beta.2 → 2.0.0-beta.200
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/README.md +1 -1
- package/createStorage.cjs.default.js +1 -0
- package/createStorage.cjs.js +12 -0
- package/createStorage.cjs.mjs +2 -0
- package/createStorage.d.ts +12 -7
- package/createStorage.esm.js +7 -0
- package/getZonedDate.cjs.default.js +1 -0
- package/getZonedDate.cjs.js +11 -0
- package/getZonedDate.cjs.mjs +2 -0
- package/getZonedDate.d.ts +1 -1
- package/getZonedDate.esm.js +6 -0
- package/gtag.cjs.default.js +1 -0
- package/gtag.cjs.js +10 -0
- package/gtag.cjs.mjs +2 -0
- package/gtag.d.ts +13 -0
- package/gtag.esm.js +5 -0
- package/gtagPageview.cjs.default.js +1 -0
- package/gtagPageview.cjs.js +10 -0
- package/gtagPageview.cjs.mjs +2 -0
- package/gtagPageview.d.ts +1 -1
- package/gtagPageview.esm.js +5 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +43 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +5 -1
- package/index.esm.js +19 -0
- package/isIE.cjs.default.js +1 -0
- package/isIE.cjs.js +10 -0
- package/isIE.cjs.mjs +2 -0
- package/isIE.d.ts +1 -1
- package/isIE.esm.js +5 -0
- package/isMobile.cjs.default.js +1 -0
- package/isMobile.cjs.js +10 -0
- package/isMobile.cjs.mjs +2 -0
- package/isMobile.d.ts +1 -1
- package/isMobile.esm.js +5 -0
- package/isWindowInsideIframe.cjs.default.js +1 -0
- package/isWindowInsideIframe.cjs.js +8 -0
- package/isWindowInsideIframe.cjs.mjs +2 -0
- package/isWindowInsideIframe.d.ts +5 -0
- package/isWindowInsideIframe.esm.js +3 -0
- package/listenUrlSearch.cjs.default.js +1 -0
- package/listenUrlSearch.cjs.js +11 -0
- package/listenUrlSearch.cjs.mjs +2 -0
- package/listenUrlSearch.d.ts +30 -0
- package/listenUrlSearch.esm.js +6 -0
- package/listenUrlSearchParams.cjs.default.js +1 -0
- package/listenUrlSearchParams.cjs.js +10 -0
- package/listenUrlSearchParams.cjs.mjs +2 -0
- package/listenUrlSearchParams.d.ts +7 -0
- package/listenUrlSearchParams.esm.js +5 -0
- package/navigateToHash.cjs.default.js +1 -0
- package/navigateToHash.cjs.js +10 -0
- package/navigateToHash.cjs.mjs +2 -0
- package/navigateToHash.d.ts +1 -1
- package/navigateToHash.esm.js +5 -0
- package/navigateToHashParams.cjs.default.js +1 -0
- package/navigateToHashParams.cjs.js +10 -0
- package/navigateToHashParams.cjs.mjs +2 -0
- package/navigateToHashParams.d.ts +2 -2
- package/navigateToHashParams.esm.js +5 -0
- package/navigateToMergedHashParams.cjs.default.js +1 -0
- package/navigateToMergedHashParams.cjs.js +11 -0
- package/navigateToMergedHashParams.cjs.mjs +2 -0
- package/navigateToMergedHashParams.d.ts +2 -2
- package/navigateToMergedHashParams.esm.js +6 -0
- package/navigateToMergedParams.cjs.default.js +1 -0
- package/navigateToMergedParams.cjs.js +11 -0
- package/navigateToMergedParams.cjs.mjs +2 -0
- package/navigateToMergedParams.d.ts +2 -2
- package/navigateToMergedParams.esm.js +6 -0
- package/navigateToParams.cjs.default.js +1 -0
- package/navigateToParams.cjs.js +11 -0
- package/navigateToParams.cjs.mjs +2 -0
- package/navigateToParams.d.ts +2 -2
- package/navigateToParams.esm.js +6 -0
- package/navigateToUrl.cjs.default.js +1 -0
- package/navigateToUrl.cjs.js +8 -0
- package/navigateToUrl.cjs.mjs +2 -0
- package/navigateToUrl.d.ts +1 -1
- package/navigateToUrl.esm.js +3 -0
- package/navigateWithoutUrlParam.cjs.default.js +1 -0
- package/navigateWithoutUrlParam.cjs.js +11 -0
- package/navigateWithoutUrlParam.cjs.mjs +2 -0
- package/navigateWithoutUrlParam.d.ts +1 -1
- package/navigateWithoutUrlParam.esm.js +6 -0
- package/package.json +133 -11
- package/redirectTo.cjs.default.js +1 -0
- package/redirectTo.cjs.js +10 -0
- package/redirectTo.cjs.mjs +2 -0
- package/redirectTo.d.ts +2 -2
- package/redirectTo.esm.js +5 -0
- package/storage.cjs.default.js +1 -0
- package/storage.cjs.js +10 -0
- package/storage.cjs.mjs +2 -0
- package/storage.d.ts +9 -7
- package/storage.esm.js +5 -0
- package/storageClient.cjs.default.js +1 -0
- package/storageClient.cjs.js +10 -0
- package/storageClient.cjs.mjs +2 -0
- package/storageClient.d.ts +10 -5
- package/storageClient.esm.js +5 -0
- package/vite.config.d.ts +2 -0
- package/createStorage.js +0 -147
- package/createStorage.mjs +0 -143
- package/getZonedDate.js +0 -42
- package/getZonedDate.mjs +0 -37
- package/gtagPageview.js +0 -35
- package/gtagPageview.mjs +0 -30
- package/index.js +0 -33
- package/index.mjs +0 -15
- package/isIE.js +0 -23
- package/isIE.mjs +0 -18
- package/isMobile.js +0 -21
- package/isMobile.mjs +0 -16
- package/navigateToHash.js +0 -18
- package/navigateToHash.mjs +0 -13
- package/navigateToHashParams.js +0 -27
- package/navigateToHashParams.mjs +0 -22
- package/navigateToMergedHashParams.js +0 -19
- package/navigateToMergedHashParams.mjs +0 -14
- package/navigateToMergedParams.js +0 -19
- package/navigateToMergedParams.mjs +0 -14
- package/navigateToParams.js +0 -24
- package/navigateToParams.mjs +0 -19
- package/navigateToUrl.js +0 -16
- package/navigateToUrl.mjs +0 -12
- package/navigateWithoutUrlParam.js +0 -24
- package/navigateWithoutUrlParam.mjs +0 -19
- package/redirectTo.js +0 -20
- package/redirectTo.mjs +0 -15
- package/storage.js +0 -13
- package/storage.mjs +0 -9
- package/storageClient.js +0 -108
- package/storageClient.mjs +0 -103
- package/typings.d.ts +0 -12
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
var navigateToParams = require('./navigateToParams.cjs.js');
|
|
7
|
+
|
|
8
|
+
let navigateToMergedParams=(o={},t)=>navigateToParams.navigateToParams(utils.mergeUrlQueryParams(utils.getUrlQueryParams(),o),t);
|
|
9
|
+
|
|
10
|
+
exports.default = navigateToMergedParams;
|
|
11
|
+
exports.navigateToMergedParams = navigateToMergedParams;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AnyQueryParams } from "@koine/utils";
|
|
2
2
|
/**
|
|
3
3
|
* Merge current URL query parameters with the given ones, it uses `history`.
|
|
4
4
|
*
|
|
5
5
|
* @category location
|
|
6
6
|
* @param replace Replace URL instead of pushing it in the history stack. By default it pushes it.
|
|
7
7
|
*/
|
|
8
|
-
export declare
|
|
8
|
+
export declare let navigateToMergedParams: (params?: NonNullable<AnyQueryParams>, replace?: boolean) => string;
|
|
9
9
|
export default navigateToMergedParams;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { mergeUrlQueryParams, getUrlQueryParams } from '@koine/utils';
|
|
2
|
+
import { navigateToParams } from './navigateToParams.esm.js';
|
|
3
|
+
|
|
4
|
+
let navigateToMergedParams=(o={},t)=>navigateToParams(mergeUrlQueryParams(getUrlQueryParams(),o),t);
|
|
5
|
+
|
|
6
|
+
export { navigateToMergedParams as default, navigateToMergedParams };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./navigateToParams.cjs.js').default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
var navigateToUrl = require('./navigateToUrl.cjs.js');
|
|
7
|
+
|
|
8
|
+
let navigateToParams=(e={},r)=>{let i="string"==typeof e?e:utils.buildUrlQueryString(e);return utils.isBrowser&&navigateToUrl.navigateToUrl(location.pathname+i,r),i};
|
|
9
|
+
|
|
10
|
+
exports.default = navigateToParams;
|
|
11
|
+
exports.navigateToParams = navigateToParams;
|
package/navigateToParams.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AnyQueryParams } from "@koine/utils";
|
|
2
2
|
/**
|
|
3
3
|
* Change current URL query parameters, it uses `history`.
|
|
4
4
|
*
|
|
@@ -6,5 +6,5 @@ import type { AnyQueryParams } from "@koine/utils/location";
|
|
|
6
6
|
* @param replace Replace URL instead of pushing it in the history stack. By default it pushes it.
|
|
7
7
|
* @returns The query string with initial `?`
|
|
8
8
|
*/
|
|
9
|
-
export declare
|
|
9
|
+
export declare let navigateToParams: (params?: string | AnyQueryParams, replace?: boolean) => string;
|
|
10
10
|
export default navigateToParams;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { buildUrlQueryString, isBrowser } from '@koine/utils';
|
|
2
|
+
import { navigateToUrl } from './navigateToUrl.esm.js';
|
|
3
|
+
|
|
4
|
+
let navigateToParams=(e={},r)=>{let i="string"==typeof e?e:buildUrlQueryString(e);return isBrowser&&navigateToUrl(location.pathname+i,r),i};
|
|
5
|
+
|
|
6
|
+
export { navigateToParams as default, navigateToParams };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./navigateToUrl.cjs.js').default;
|
package/navigateToUrl.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./navigateWithoutUrlParam.cjs.js').default;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
var navigateToParams = require('./navigateToParams.cjs.js');
|
|
7
|
+
|
|
8
|
+
let navigateWithoutUrlParam=(a,e)=>{let o={},i=utils.getUrlQueryParams();for(let t in i)t!==a&&(o[t]=i[t]);return navigateToParams.navigateToParams(o,e)};
|
|
9
|
+
|
|
10
|
+
exports.default = navigateWithoutUrlParam;
|
|
11
|
+
exports.navigateWithoutUrlParam = navigateWithoutUrlParam;
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* @category location
|
|
5
5
|
* @param replace Replace URL instead of pushing it in the history stack. By default it pushes it.
|
|
6
6
|
*/
|
|
7
|
-
export declare
|
|
7
|
+
export declare let navigateWithoutUrlParam: (paramName?: string, replace?: boolean) => string;
|
|
8
8
|
export default navigateWithoutUrlParam;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { getUrlQueryParams } from '@koine/utils';
|
|
2
|
+
import { navigateToParams } from './navigateToParams.esm.js';
|
|
3
|
+
|
|
4
|
+
let navigateWithoutUrlParam=(a,e)=>{let o={},i=getUrlQueryParams();for(let t in i)t!==a&&(o[t]=i[t]);return navigateToParams(o,e)};
|
|
5
|
+
|
|
6
|
+
export { navigateWithoutUrlParam as default, navigateWithoutUrlParam };
|
package/package.json
CHANGED
|
@@ -2,18 +2,140 @@
|
|
|
2
2
|
"name": "@koine/browser",
|
|
3
3
|
"sideEffects": false,
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"type-fest": "^3.11.1"
|
|
5
|
+
"@koine/dom": "2.0.0-beta.200",
|
|
6
|
+
"@koine/utils": "2.0.0-beta.200",
|
|
7
|
+
"date-fns-tz": "^3.2.0"
|
|
9
8
|
},
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
"peerDependenciesMeta": {
|
|
10
|
+
"date-fns-tz": {
|
|
11
|
+
"optional": true
|
|
12
|
+
}
|
|
14
13
|
},
|
|
15
|
-
"
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": "./package.json",
|
|
16
|
+
".": {
|
|
17
|
+
"module": "./index.esm.js",
|
|
18
|
+
"types": "./index.d.ts",
|
|
19
|
+
"import": "./index.cjs.mjs",
|
|
20
|
+
"default": "./index.cjs.js"
|
|
21
|
+
},
|
|
22
|
+
"./createStorage": {
|
|
23
|
+
"module": "./createStorage.esm.js",
|
|
24
|
+
"types": "./createStorage.d.ts",
|
|
25
|
+
"import": "./createStorage.cjs.mjs",
|
|
26
|
+
"default": "./createStorage.cjs.js"
|
|
27
|
+
},
|
|
28
|
+
"./getZonedDate": {
|
|
29
|
+
"module": "./getZonedDate.esm.js",
|
|
30
|
+
"types": "./getZonedDate.d.ts",
|
|
31
|
+
"import": "./getZonedDate.cjs.mjs",
|
|
32
|
+
"default": "./getZonedDate.cjs.js"
|
|
33
|
+
},
|
|
34
|
+
"./gtag": {
|
|
35
|
+
"module": "./gtag.esm.js",
|
|
36
|
+
"types": "./gtag.d.ts",
|
|
37
|
+
"import": "./gtag.cjs.mjs",
|
|
38
|
+
"default": "./gtag.cjs.js"
|
|
39
|
+
},
|
|
40
|
+
"./gtagPageview": {
|
|
41
|
+
"module": "./gtagPageview.esm.js",
|
|
42
|
+
"types": "./gtagPageview.d.ts",
|
|
43
|
+
"import": "./gtagPageview.cjs.mjs",
|
|
44
|
+
"default": "./gtagPageview.cjs.js"
|
|
45
|
+
},
|
|
46
|
+
"./isIE": {
|
|
47
|
+
"module": "./isIE.esm.js",
|
|
48
|
+
"types": "./isIE.d.ts",
|
|
49
|
+
"import": "./isIE.cjs.mjs",
|
|
50
|
+
"default": "./isIE.cjs.js"
|
|
51
|
+
},
|
|
52
|
+
"./isMobile": {
|
|
53
|
+
"module": "./isMobile.esm.js",
|
|
54
|
+
"types": "./isMobile.d.ts",
|
|
55
|
+
"import": "./isMobile.cjs.mjs",
|
|
56
|
+
"default": "./isMobile.cjs.js"
|
|
57
|
+
},
|
|
58
|
+
"./isWindowInsideIframe": {
|
|
59
|
+
"module": "./isWindowInsideIframe.esm.js",
|
|
60
|
+
"types": "./isWindowInsideIframe.d.ts",
|
|
61
|
+
"import": "./isWindowInsideIframe.cjs.mjs",
|
|
62
|
+
"default": "./isWindowInsideIframe.cjs.js"
|
|
63
|
+
},
|
|
64
|
+
"./listenUrlSearch": {
|
|
65
|
+
"module": "./listenUrlSearch.esm.js",
|
|
66
|
+
"types": "./listenUrlSearch.d.ts",
|
|
67
|
+
"import": "./listenUrlSearch.cjs.mjs",
|
|
68
|
+
"default": "./listenUrlSearch.cjs.js"
|
|
69
|
+
},
|
|
70
|
+
"./listenUrlSearchParams": {
|
|
71
|
+
"module": "./listenUrlSearchParams.esm.js",
|
|
72
|
+
"types": "./listenUrlSearchParams.d.ts",
|
|
73
|
+
"import": "./listenUrlSearchParams.cjs.mjs",
|
|
74
|
+
"default": "./listenUrlSearchParams.cjs.js"
|
|
75
|
+
},
|
|
76
|
+
"./navigateToHash": {
|
|
77
|
+
"module": "./navigateToHash.esm.js",
|
|
78
|
+
"types": "./navigateToHash.d.ts",
|
|
79
|
+
"import": "./navigateToHash.cjs.mjs",
|
|
80
|
+
"default": "./navigateToHash.cjs.js"
|
|
81
|
+
},
|
|
82
|
+
"./navigateToHashParams": {
|
|
83
|
+
"module": "./navigateToHashParams.esm.js",
|
|
84
|
+
"types": "./navigateToHashParams.d.ts",
|
|
85
|
+
"import": "./navigateToHashParams.cjs.mjs",
|
|
86
|
+
"default": "./navigateToHashParams.cjs.js"
|
|
87
|
+
},
|
|
88
|
+
"./navigateToMergedHashParams": {
|
|
89
|
+
"module": "./navigateToMergedHashParams.esm.js",
|
|
90
|
+
"types": "./navigateToMergedHashParams.d.ts",
|
|
91
|
+
"import": "./navigateToMergedHashParams.cjs.mjs",
|
|
92
|
+
"default": "./navigateToMergedHashParams.cjs.js"
|
|
93
|
+
},
|
|
94
|
+
"./navigateToMergedParams": {
|
|
95
|
+
"module": "./navigateToMergedParams.esm.js",
|
|
96
|
+
"types": "./navigateToMergedParams.d.ts",
|
|
97
|
+
"import": "./navigateToMergedParams.cjs.mjs",
|
|
98
|
+
"default": "./navigateToMergedParams.cjs.js"
|
|
99
|
+
},
|
|
100
|
+
"./navigateToParams": {
|
|
101
|
+
"module": "./navigateToParams.esm.js",
|
|
102
|
+
"types": "./navigateToParams.d.ts",
|
|
103
|
+
"import": "./navigateToParams.cjs.mjs",
|
|
104
|
+
"default": "./navigateToParams.cjs.js"
|
|
105
|
+
},
|
|
106
|
+
"./navigateToUrl": {
|
|
107
|
+
"module": "./navigateToUrl.esm.js",
|
|
108
|
+
"types": "./navigateToUrl.d.ts",
|
|
109
|
+
"import": "./navigateToUrl.cjs.mjs",
|
|
110
|
+
"default": "./navigateToUrl.cjs.js"
|
|
111
|
+
},
|
|
112
|
+
"./navigateWithoutUrlParam": {
|
|
113
|
+
"module": "./navigateWithoutUrlParam.esm.js",
|
|
114
|
+
"types": "./navigateWithoutUrlParam.d.ts",
|
|
115
|
+
"import": "./navigateWithoutUrlParam.cjs.mjs",
|
|
116
|
+
"default": "./navigateWithoutUrlParam.cjs.js"
|
|
117
|
+
},
|
|
118
|
+
"./redirectTo": {
|
|
119
|
+
"module": "./redirectTo.esm.js",
|
|
120
|
+
"types": "./redirectTo.d.ts",
|
|
121
|
+
"import": "./redirectTo.cjs.mjs",
|
|
122
|
+
"default": "./redirectTo.cjs.js"
|
|
123
|
+
},
|
|
124
|
+
"./storage": {
|
|
125
|
+
"module": "./storage.esm.js",
|
|
126
|
+
"types": "./storage.d.ts",
|
|
127
|
+
"import": "./storage.cjs.mjs",
|
|
128
|
+
"default": "./storage.cjs.js"
|
|
129
|
+
},
|
|
130
|
+
"./storageClient": {
|
|
131
|
+
"module": "./storageClient.esm.js",
|
|
132
|
+
"types": "./storageClient.d.ts",
|
|
133
|
+
"import": "./storageClient.cjs.mjs",
|
|
134
|
+
"default": "./storageClient.cjs.js"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"module": "./index.esm.js",
|
|
138
|
+
"main": "./index.cjs.js",
|
|
16
139
|
"types": "./index.d.ts",
|
|
17
|
-
"version": "2.0.0-beta.
|
|
18
|
-
"module": "./index.mjs"
|
|
140
|
+
"version": "2.0.0-beta.200"
|
|
19
141
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./redirectTo.cjs.js').default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
let redirectTo=(t,o)=>{if(utils.isBrowser){let r=utils.buildUrlQueryString(o);location.href=t.replace(/\?+$/g,"")+r;}};
|
|
8
|
+
|
|
9
|
+
exports.default = redirectTo;
|
|
10
|
+
exports.redirectTo = redirectTo;
|
package/redirectTo.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AnyQueryParams } from "@koine/utils";
|
|
2
2
|
/**
|
|
3
3
|
* Redirect to url with params {optionally}, removes eventual trailing question
|
|
4
4
|
* marks from the given URL, it uses `location`
|
|
5
5
|
*
|
|
6
6
|
* @category location
|
|
7
7
|
*/
|
|
8
|
-
export declare
|
|
8
|
+
export declare let redirectTo: (url: string, params?: AnyQueryParams) => void;
|
|
9
9
|
export default redirectTo;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./storage.cjs.js').default;
|
package/storage.cjs.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var storageClient = require('./storageClient.cjs.js');
|
|
6
|
+
|
|
7
|
+
let storage={l:storageClient.storageClient(),s:storageClient.storageClient(true)};
|
|
8
|
+
|
|
9
|
+
exports.default = storage;
|
|
10
|
+
exports.storage = storage;
|
package/storage.cjs.mjs
ADDED
package/storage.d.ts
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Storage, for `localStorage` and `sessionStorage`
|
|
3
|
+
*
|
|
4
|
+
* @category storage
|
|
3
5
|
*/
|
|
4
|
-
export declare
|
|
6
|
+
export declare let storage: {
|
|
5
7
|
l: {
|
|
6
8
|
get: <TKey extends string, TValue = any>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
|
|
7
|
-
set: <
|
|
8
|
-
remove: <
|
|
9
|
-
has: <
|
|
9
|
+
set: <TKey extends string, TValue = any>(key: TKey, value?: TValue | undefined, transform?: (value: any) => string) => void;
|
|
10
|
+
remove: <TKey extends string>(key: TKey) => void;
|
|
11
|
+
has: <TKey extends string, TValue = any>(key: TKey, defaultValue?: TValue | undefined) => boolean | NonNullable<TValue>;
|
|
10
12
|
};
|
|
11
13
|
s: {
|
|
12
14
|
get: <TKey extends string, TValue = any>(key: TKey, transform?: ((value: string) => TValue) | undefined, defaultValue?: TValue | null | undefined) => NonNullable<TValue> | null;
|
|
13
|
-
set: <
|
|
14
|
-
remove: <
|
|
15
|
-
has: <
|
|
15
|
+
set: <TKey extends string, TValue = any>(key: TKey, value?: TValue | undefined, transform?: (value: any) => string) => void;
|
|
16
|
+
remove: <TKey extends string>(key: TKey) => void;
|
|
17
|
+
has: <TKey extends string, TValue = any>(key: TKey, defaultValue?: TValue | undefined) => boolean | NonNullable<TValue>;
|
|
16
18
|
};
|
|
17
19
|
};
|
|
18
20
|
export default storage;
|
package/storage.esm.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./storageClient.cjs.js').default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
let t={g:"getItem",s:"setItem",r:"removeItem"};let storageClient=s=>{let r=(o,r,l)=>utils.isBrowser?window[s?"sessionStorage":"localStorage"][t[o]](r,l):()=>{"development"===process.env.NODE_ENV&&console.warn(`[@koine/utils:storageClient]: ${s?"sessionStorage":"localStorage"} does not exists outside of browser.`);};return {get:(o,t,s)=>{let l=s??null;if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log(`[@koine/utils:storage] called 'get' outside of browser with default value '${JSON.stringify(s)}'.`),utils.isBrowser){let e=r("g",o);if(e){e=t?t(e):e;try{let o=JSON.parse(e);o&&(l=o);}catch(o){l=e;}}}return l},set:(t,s,l=e=>e)=>{if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log("[@koine/utils:storage] called 'set' outside of browser does not work."),utils.isBrowser)try{let e=l(utils.isString(s)?s:JSON.stringify(s));r("s",t,e);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'set' error.",e);}},remove:o=>{if("development"!==process.env.NODE_ENV||utils.isBrowser||console.log("[@koine/utils:storage] called 'remove' outside of browser does not work."),utils.isBrowser)try{r("r",o);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'remove' error.",e);}},has:(o,t)=>{let s=t??false;return "development"!==process.env.NODE_ENV||utils.isBrowser||console.log(`[@koine/utils:storage] called 'has' outside of browser with default value '${JSON.stringify(t)}'.`),utils.isBrowser&&(s=r("g",o)??false),s}}};
|
|
8
|
+
|
|
9
|
+
exports.default = storageClient;
|
|
10
|
+
exports.storageClient = storageClient;
|
package/storageClient.d.ts
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @category storage
|
|
3
|
+
*/
|
|
1
4
|
export type StorageClientConfig = Record<string, any>;
|
|
2
5
|
/**
|
|
3
6
|
* Super minifiable `local/session Storage` client creator with SSR safety
|
|
7
|
+
*
|
|
8
|
+
* @category storage
|
|
4
9
|
*/
|
|
5
|
-
export declare
|
|
6
|
-
get: <TKey extends Extract<keyof TConfig, string>, TValue = TConfig[TKey]>(key: TKey, transform?: (
|
|
7
|
-
set: <
|
|
8
|
-
remove: <
|
|
9
|
-
has: <
|
|
10
|
+
export declare let storageClient: <TConfig extends StorageClientConfig = StorageClientConfig>(useSessionStorage?: boolean) => {
|
|
11
|
+
get: <TKey extends Extract<keyof TConfig, string>, TValue = TConfig[TKey]>(key: TKey, transform?: (value: string) => TValue, defaultValue?: null | TValue) => NonNullable<TValue> | null;
|
|
12
|
+
set: <TKey extends Extract<keyof TConfig, string>, TValue_1 = TConfig[TKey]>(key: TKey, value?: TValue_1, transform?: (value: any) => string) => void;
|
|
13
|
+
remove: <TKey extends Extract<keyof TConfig, string>>(key: TKey) => void;
|
|
14
|
+
has: <TKey extends Extract<keyof TConfig, string>, TValue_2 = TConfig[TKey]>(key: TKey, defaultValue?: TValue_2) => boolean | NonNullable<TValue_2>;
|
|
10
15
|
};
|
|
11
16
|
export default storageClient;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { isBrowser, isString } from '@koine/utils';
|
|
2
|
+
|
|
3
|
+
let t={g:"getItem",s:"setItem",r:"removeItem"};let storageClient=s=>{let r=(o,r,l)=>isBrowser?window[s?"sessionStorage":"localStorage"][t[o]](r,l):()=>{"development"===process.env.NODE_ENV&&console.warn(`[@koine/utils:storageClient]: ${s?"sessionStorage":"localStorage"} does not exists outside of browser.`);};return {get:(o,t,s)=>{let l=s??null;if("development"!==process.env.NODE_ENV||isBrowser||console.log(`[@koine/utils:storage] called 'get' outside of browser with default value '${JSON.stringify(s)}'.`),isBrowser){let e=r("g",o);if(e){e=t?t(e):e;try{let o=JSON.parse(e);o&&(l=o);}catch(o){l=e;}}}return l},set:(t,s,l=e=>e)=>{if("development"!==process.env.NODE_ENV||isBrowser||console.log("[@koine/utils:storage] called 'set' outside of browser does not work."),isBrowser)try{let e=l(isString(s)?s:JSON.stringify(s));r("s",t,e);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'set' error.",e);}},remove:o=>{if("development"!==process.env.NODE_ENV||isBrowser||console.log("[@koine/utils:storage] called 'remove' outside of browser does not work."),isBrowser)try{r("r",o);}catch(e){"development"===process.env.NODE_ENV&&console.warn("[@koine/utils:createStorage]: 'remove' error.",e);}},has:(o,t)=>{let s=t??false;return "development"!==process.env.NODE_ENV||isBrowser||console.log(`[@koine/utils:storage] called 'has' outside of browser with default value '${JSON.stringify(t)}'.`),isBrowser&&(s=r("g",o)??false),s}}};
|
|
4
|
+
|
|
5
|
+
export { storageClient as default, storageClient };
|
package/vite.config.d.ts
ADDED
package/createStorage.js
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createStorage = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var decode_1 = tslib_1.__importDefault(require("@koine/utils/decode"));
|
|
6
|
-
var encode_1 = tslib_1.__importDefault(require("@koine/utils/encode"));
|
|
7
|
-
var isBrowser_1 = tslib_1.__importDefault(require("@koine/utils/isBrowser"));
|
|
8
|
-
var isNullOrUndefined_1 = tslib_1.__importDefault(require("@koine/utils/isNullOrUndefined"));
|
|
9
|
-
var noop_1 = tslib_1.__importDefault(require("@koine/utils/noop"));
|
|
10
|
-
var on_1 = tslib_1.__importDefault(require("@koine/dom/on"));
|
|
11
|
-
var storage_1 = tslib_1.__importDefault(require("./storage"));
|
|
12
|
-
/**
|
|
13
|
-
* Utility to create a storage instance to interact with `localStorage` using
|
|
14
|
-
* encrypted (encoded) key/values.
|
|
15
|
-
*/
|
|
16
|
-
var createStorage = function (config, useSessionStorage) {
|
|
17
|
-
var client = useSessionStorage ? storage_1.default.s : storage_1.default.l;
|
|
18
|
-
var keys = Object.keys(config).reduce(function (map, key) {
|
|
19
|
-
var _a;
|
|
20
|
-
return (tslib_1.__assign(tslib_1.__assign({}, map), (_a = {}, _a[key] = (0, encode_1.default)(key), _a)));
|
|
21
|
-
}, {});
|
|
22
|
-
return {
|
|
23
|
-
/**
|
|
24
|
-
* Get all storage value (it uses `localStorage.get()`).
|
|
25
|
-
*
|
|
26
|
-
* Unparseable values with `JSON.parse()` return their value as it is.
|
|
27
|
-
* On ssr or if the given `key` argument is not found `defaultValue` is
|
|
28
|
-
* returned, otherwise `null`.
|
|
29
|
-
*/
|
|
30
|
-
get: function (key, defaultValue) {
|
|
31
|
-
return client.get(keys[key], decode_1.default, defaultValue);
|
|
32
|
-
},
|
|
33
|
-
/**
|
|
34
|
-
* Get all storage values (it uses `localStorage.get()`).
|
|
35
|
-
*
|
|
36
|
-
* `undefined` and `null` values are not returned.
|
|
37
|
-
*/
|
|
38
|
-
getAll: function (defaultValues) {
|
|
39
|
-
if (!isBrowser_1.default) {
|
|
40
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
41
|
-
console.log("[@koine/utils:createStorage] attempt to use 'getAll' outside of browser.");
|
|
42
|
-
}
|
|
43
|
-
return {};
|
|
44
|
-
}
|
|
45
|
-
var all = {};
|
|
46
|
-
for (var key in keys) {
|
|
47
|
-
var value = this.get(key);
|
|
48
|
-
var defaultValue = defaultValues === null || defaultValues === void 0 ? void 0 : defaultValues[key];
|
|
49
|
-
if (!(0, isNullOrUndefined_1.default)(value)) {
|
|
50
|
-
all[key] = value;
|
|
51
|
-
}
|
|
52
|
-
else if (defaultValue) {
|
|
53
|
-
all[key] = defaultValue;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return all;
|
|
57
|
-
},
|
|
58
|
-
/**
|
|
59
|
-
* Set a storage value (it uses `localStorage.set()`).
|
|
60
|
-
*
|
|
61
|
-
* Non-string values are stringified with `JSON.stringify()`
|
|
62
|
-
*/
|
|
63
|
-
set: function (key, value) {
|
|
64
|
-
client.set(keys[key], value, encode_1.default);
|
|
65
|
-
},
|
|
66
|
-
/**
|
|
67
|
-
* Set all given storage values (it uses `localStorage.set()`).
|
|
68
|
-
*
|
|
69
|
-
* Non-string values are stringified with `JSON.stringify()`, `undefined`
|
|
70
|
-
* and `null` values are removed from the storage
|
|
71
|
-
*/
|
|
72
|
-
setMany: function (newValues) {
|
|
73
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
74
|
-
if (!isBrowser_1.default) {
|
|
75
|
-
console.log("[@koine/utils:createStorage] attempt to use 'setMany' outside of browser.");
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (isBrowser_1.default) {
|
|
79
|
-
for (var key in newValues) {
|
|
80
|
-
var value = newValues[key];
|
|
81
|
-
if (!(0, isNullOrUndefined_1.default)(value)) {
|
|
82
|
-
this.set(key, value);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
this.remove(key);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
/**
|
|
91
|
-
* Check if a storage value is _truthy_ (it uses `localStorage.get()`).
|
|
92
|
-
*/
|
|
93
|
-
has: function (key) {
|
|
94
|
-
return client.has(keys[key]);
|
|
95
|
-
},
|
|
96
|
-
/**
|
|
97
|
-
* Remove a storage value (it uses `localStorage.remove()`).
|
|
98
|
-
*/
|
|
99
|
-
remove: function (key) {
|
|
100
|
-
client.remove(keys[key]);
|
|
101
|
-
},
|
|
102
|
-
/**
|
|
103
|
-
* Clear all storage values (it uses `localStorage.remove()`).
|
|
104
|
-
*/
|
|
105
|
-
clear: function () {
|
|
106
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
107
|
-
if (!isBrowser_1.default) {
|
|
108
|
-
console.log("[@koine/utils:createStorage] attempt to use 'clear' outside of browser.");
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (isBrowser_1.default) {
|
|
112
|
-
for (var key in keys) {
|
|
113
|
-
client.remove(keys[key]);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
},
|
|
117
|
-
/**
|
|
118
|
-
* Watch a storage value changes, this needs to be executed only in browser
|
|
119
|
-
* context (it uses `window.addEventListener("storage")`).
|
|
120
|
-
*
|
|
121
|
-
* Inspiration from [Multi Tab Logout in React — Redux](https://medium.com/front-end-weekly/multi-tab-logout-in-react-redux-4715f071c7fa)
|
|
122
|
-
*/
|
|
123
|
-
watch: function (keyToWatch, onRemoved, onAdded) {
|
|
124
|
-
if (!isBrowser_1.default) {
|
|
125
|
-
if (process.env["NODE_ENV"] !== "production") {
|
|
126
|
-
console.log("[@koine/utils:createStorage] attempt to use 'watch' outside of browser.");
|
|
127
|
-
}
|
|
128
|
-
return noop_1.default;
|
|
129
|
-
}
|
|
130
|
-
var handler = function (event) {
|
|
131
|
-
var key = event.key, oldValue = event.oldValue, newValue = event.newValue;
|
|
132
|
-
if (key === keys[keyToWatch]) {
|
|
133
|
-
if (oldValue && !newValue) {
|
|
134
|
-
onRemoved === null || onRemoved === void 0 ? void 0 : onRemoved();
|
|
135
|
-
}
|
|
136
|
-
else if (!oldValue && newValue) {
|
|
137
|
-
onAdded === null || onAdded === void 0 ? void 0 : onAdded();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
var listener = (0, on_1.default)(window, "storage", handler);
|
|
142
|
-
return listener;
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
};
|
|
146
|
-
exports.createStorage = createStorage;
|
|
147
|
-
exports.default = exports.createStorage;
|