@sima-land/isomorph 9.0.6 → 9.0.7
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/cache/local-storage.d.ts
CHANGED
|
@@ -1,14 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
1
|
+
/**
|
|
2
|
+
* Определяет доступен ли кэш.
|
|
3
|
+
* @return Флаг доступности кэш.
|
|
4
|
+
*/
|
|
5
|
+
export declare const isAvailable: () => boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает объект.
|
|
8
|
+
* @param key Ключ.
|
|
9
|
+
* @return Запрашиваемое значение.
|
|
10
|
+
*/
|
|
11
|
+
export declare const getItem: (key: string) => unknown;
|
|
12
|
+
/**
|
|
13
|
+
* Добавляет значение.
|
|
14
|
+
* @param key Ключ.
|
|
15
|
+
* @param value Значение.
|
|
16
|
+
* @param duration Время жизни значения в секундах.
|
|
17
|
+
*/
|
|
18
|
+
export declare const setItem: (key: string, value: any, duration?: number) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Определяет, превышена ли квота.
|
|
21
|
+
* @param error Информация об ошибке.
|
|
22
|
+
* @return Признак превышения квоты.
|
|
23
|
+
*/
|
|
24
|
+
export declare const isQuotaExceeded: (error: any) => boolean;
|
|
6
25
|
/**
|
|
7
26
|
* Набор методов для работы с кэшем.
|
|
8
|
-
* @type {{set: Function, get: Function, status: boolean}}
|
|
9
27
|
*/
|
|
10
|
-
declare const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
status: boolean;
|
|
28
|
+
declare const LocalStorageCache: {
|
|
29
|
+
readonly get: (key: string) => unknown;
|
|
30
|
+
readonly set: (key: string, value: any, duration?: number) => void;
|
|
31
|
+
readonly status: boolean;
|
|
32
|
+
readonly quotaExceeded: (error: any) => boolean;
|
|
14
33
|
};
|
|
34
|
+
export default LocalStorageCache;
|
package/cache/local-storage.js
CHANGED
|
@@ -3,17 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isQuotaExceeded = exports.setItem = exports.getItem = exports.isAvailable = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Определяет доступен ли кэш.
|
|
6
|
-
* @return
|
|
6
|
+
* @return Флаг доступности кэш.
|
|
7
7
|
*/
|
|
8
|
-
const isAvailable = () =>
|
|
8
|
+
const isAvailable = () => {
|
|
9
|
+
try {
|
|
10
|
+
const testKey = `local_storage_test_key::${Date.now()}`;
|
|
11
|
+
window.localStorage.setItem(testKey, testKey);
|
|
12
|
+
window.localStorage.removeItem(testKey);
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
catch (_a) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
9
19
|
exports.isAvailable = isAvailable;
|
|
10
20
|
/**
|
|
11
|
-
* Возвращает
|
|
12
|
-
* @param
|
|
13
|
-
* @return
|
|
21
|
+
* Возвращает объект.
|
|
22
|
+
* @param key Ключ.
|
|
23
|
+
* @return Запрашиваемое значение.
|
|
14
24
|
*/
|
|
15
|
-
const getItem = key => {
|
|
16
|
-
const { value, expire } = JSON.parse(localStorage.getItem(key)
|
|
25
|
+
const getItem = (key) => {
|
|
26
|
+
const { value, expire } = JSON.parse(localStorage.getItem(key) || '{}');
|
|
17
27
|
const now = Date.now();
|
|
18
28
|
const isExpired = expire
|
|
19
29
|
? now > expire
|
|
@@ -23,10 +33,10 @@ const getItem = key => {
|
|
|
23
33
|
};
|
|
24
34
|
exports.getItem = getItem;
|
|
25
35
|
/**
|
|
26
|
-
* Добавляет
|
|
27
|
-
* @param
|
|
28
|
-
* @param
|
|
29
|
-
* @param
|
|
36
|
+
* Добавляет значение.
|
|
37
|
+
* @param key Ключ.
|
|
38
|
+
* @param value Значение.
|
|
39
|
+
* @param duration Время жизни значения в секундах.
|
|
30
40
|
*/
|
|
31
41
|
const setItem = (key, value, duration = 3600) => {
|
|
32
42
|
const now = Date.now();
|
|
@@ -39,11 +49,11 @@ const setItem = (key, value, duration = 3600) => {
|
|
|
39
49
|
};
|
|
40
50
|
exports.setItem = setItem;
|
|
41
51
|
/**
|
|
42
|
-
* Определяет,
|
|
43
|
-
* @param
|
|
44
|
-
* @return
|
|
52
|
+
* Определяет, превышена ли квота.
|
|
53
|
+
* @param error Информация об ошибке.
|
|
54
|
+
* @return Признак превышения квоты.
|
|
45
55
|
*/
|
|
46
|
-
const isQuotaExceeded = error => {
|
|
56
|
+
const isQuotaExceeded = (error) => {
|
|
47
57
|
let quotaExceeded = false;
|
|
48
58
|
if (error) {
|
|
49
59
|
if (error.code) {
|
|
@@ -60,7 +70,7 @@ const isQuotaExceeded = error => {
|
|
|
60
70
|
}
|
|
61
71
|
}
|
|
62
72
|
else if (error.number === -2147024882) {
|
|
63
|
-
//
|
|
73
|
+
// IE 8
|
|
64
74
|
quotaExceeded = true;
|
|
65
75
|
}
|
|
66
76
|
}
|
|
@@ -69,13 +79,12 @@ const isQuotaExceeded = error => {
|
|
|
69
79
|
exports.isQuotaExceeded = isQuotaExceeded;
|
|
70
80
|
/**
|
|
71
81
|
* Набор методов для работы с кэшем.
|
|
72
|
-
* @type {{set: Function, get: Function, status: boolean}}
|
|
73
82
|
*/
|
|
74
|
-
const
|
|
83
|
+
const LocalStorageCache = {
|
|
75
84
|
get: exports.getItem,
|
|
76
85
|
set: exports.setItem,
|
|
77
86
|
status: exports.isAvailable(),
|
|
78
87
|
quotaExceeded: exports.isQuotaExceeded,
|
|
79
88
|
};
|
|
80
|
-
exports.default =
|
|
89
|
+
exports.default = LocalStorageCache;
|
|
81
90
|
//# sourceMappingURL=local-storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../src/cache/local-storage.
|
|
1
|
+
{"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../src/cache/local-storage.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,WAAW,GAAG,GAAY,EAAE;IACvC,IAAI;QACF,MAAM,OAAO,GAAG,2BAA2B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAExD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC;KACb;IAAC,WAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAA;AAXY,QAAA,WAAW,eAWvB;AAED;;;;GAIG;AACI,MAAM,OAAO,GAAG,CAAC,GAAW,EAAW,EAAE;IAC9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,MAAM;QACtB,CAAC,CAAC,GAAG,GAAG,MAAM;QACd,CAAC,CAAC,IAAI,CAAC;IAET,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE1C,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC,CAAC,CAAC;AAVW,QAAA,OAAO,WAUlB;AAEF;;;;;GAKG;AACI,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC;IAEhC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QACvC,KAAK;QACL,MAAM;KACP,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AATW,QAAA,OAAO,WASlB;AAEF;;;;GAIG;AACI,MAAM,eAAe,GAAG,CAAC,KAAU,EAAW,EAAE;IACrD,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,KAAK,EAAE;QACT,IAAI,KAAK,CAAC,IAAI,EAAE;YACd,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAClB,KAAK,EAAE;oBACL,aAAa,GAAG,IAAI,CAAC;oBACrB,MAAM;gBACR,KAAK,IAAI;oBACP,UAAU;oBACV,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,EAAE;wBAC/C,aAAa,GAAG,IAAI,CAAC;qBACtB;oBACD,MAAM;aACT;SACF;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE;YACvC,OAAO;YACP,aAAa,GAAG,IAAI,CAAC;SACtB;KACF;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAvBW,QAAA,eAAe,mBAuB1B;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,GAAG,EAAE,eAAO;IACZ,GAAG,EAAE,eAAO;IACZ,MAAM,EAAE,mBAAW,EAAE;IACrB,aAAa,EAAE,uBAAe;CACtB,CAAC;AAEX,kBAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sima-land/isomorph",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.7",
|
|
4
4
|
"description": "Set of utils that are not directly related to UI",
|
|
5
5
|
"repository": "ssh://git@github.com:sima-land/isomorph.git",
|
|
6
6
|
"author": "www.sima-land.ru team",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"private": false,
|
|
9
9
|
"engines": {
|
|
10
|
-
"node": ">=
|
|
10
|
+
"node": ">=14.17.0"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
13
|
"prepare": "",
|
|
@@ -34,16 +34,16 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@babel/core": "^7.14.2",
|
|
37
|
-
"@babel/plugin-proposal-optional-chaining": "^7.14.2",
|
|
38
37
|
"@babel/preset-env": "^7.14.2",
|
|
39
38
|
"@babel/preset-react": "^7.13.13",
|
|
39
|
+
"@babel/preset-typescript": "^7.16.5",
|
|
40
40
|
"@sentry/browser": "^5.15.5",
|
|
41
41
|
"@sentry/node": "5.10.2",
|
|
42
42
|
"@sima-land/linters": "^1.0.12",
|
|
43
43
|
"@types/enzyme": "^3.10.8",
|
|
44
44
|
"@types/express": "^4.17.13",
|
|
45
45
|
"@types/jaeger-client": "^3.18.2",
|
|
46
|
-
"@types/jest": "^
|
|
46
|
+
"@types/jest": "^27.0.3",
|
|
47
47
|
"@types/lodash": "^4.14.171",
|
|
48
48
|
"@types/node": "^16.4.5",
|
|
49
49
|
"@types/react": "^16.14.0",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@types/webpack": "^5.28.0",
|
|
53
53
|
"@typescript-eslint/eslint-plugin": "^4.23.0",
|
|
54
54
|
"@typescript-eslint/parser": "^4.23.0",
|
|
55
|
-
"babel-jest": "^27.
|
|
55
|
+
"babel-jest": "^27.4.5",
|
|
56
56
|
"copyfiles": "^2.4.1",
|
|
57
57
|
"dotenv": "^8.2.0",
|
|
58
58
|
"enzyme": "3.8.x",
|
|
@@ -60,29 +60,28 @@
|
|
|
60
60
|
"enzyme-to-json": "3.3.x",
|
|
61
61
|
"husky": "^7.0.1",
|
|
62
62
|
"identity-obj-proxy": "3.0.x",
|
|
63
|
-
"jest": "^27.
|
|
63
|
+
"jest": "^27.4.5",
|
|
64
64
|
"lint-staged": "^11.1.1",
|
|
65
65
|
"lodash": "^4.17.21",
|
|
66
|
-
"react": "16.12.0",
|
|
67
|
-
"react-dom": "16.12.0",
|
|
68
|
-
"react-redux": "7.1.3",
|
|
69
|
-
"redux": "4.0.5",
|
|
70
|
-
"redux-saga": "1.1.3",
|
|
71
|
-
"reduxsauce": "1.1.2",
|
|
72
|
-
"reselect": "4.0.0",
|
|
66
|
+
"react": "^16.12.0",
|
|
67
|
+
"react-dom": "^16.12.0",
|
|
68
|
+
"react-redux": "^7.1.3",
|
|
69
|
+
"redux": "^4.0.5",
|
|
70
|
+
"redux-saga": "^1.1.3",
|
|
71
|
+
"reduxsauce": "^1.1.2",
|
|
72
|
+
"reselect": "^4.0.0",
|
|
73
73
|
"rimraf": "^3.0.2",
|
|
74
74
|
"sentry-testkit": "^3.2.1",
|
|
75
|
-
"ts-jest": "^27.0.4",
|
|
76
75
|
"typescript": "^4.2.4"
|
|
77
76
|
},
|
|
78
77
|
"peerDependencies": {
|
|
79
|
-
"lodash": "4.17.
|
|
80
|
-
"react": "16.12.0",
|
|
81
|
-
"react-dom": "16.12.0",
|
|
82
|
-
"react-redux": "7.1.3",
|
|
83
|
-
"redux": "4.0.5",
|
|
84
|
-
"redux-saga": "1.1.3",
|
|
85
|
-
"reduxsauce": "1.1.2",
|
|
86
|
-
"reselect": "4.0.0"
|
|
78
|
+
"lodash": "^4.17.21",
|
|
79
|
+
"react": "^16.12.0",
|
|
80
|
+
"react-dom": "^16.12.0",
|
|
81
|
+
"react-redux": "^7.1.3",
|
|
82
|
+
"redux": "^4.0.5",
|
|
83
|
+
"redux-saga": "^1.1.3",
|
|
84
|
+
"reduxsauce": "^1.1.2",
|
|
85
|
+
"reselect": "^4.0.0"
|
|
87
86
|
}
|
|
88
87
|
}
|
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Определяет доступен ли кэш.
|
|
3
|
-
* @return
|
|
3
|
+
* @return Флаг доступности кэш.
|
|
4
4
|
*/
|
|
5
|
-
export const isAvailable = () =>
|
|
5
|
+
export const isAvailable = (): boolean => {
|
|
6
|
+
try {
|
|
7
|
+
const testKey = `local_storage_test_key::${Date.now()}`;
|
|
8
|
+
|
|
9
|
+
window.localStorage.setItem(testKey, testKey);
|
|
10
|
+
window.localStorage.removeItem(testKey);
|
|
11
|
+
|
|
12
|
+
return true;
|
|
13
|
+
} catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
6
17
|
|
|
7
18
|
/**
|
|
8
|
-
* Возвращает
|
|
9
|
-
* @param
|
|
10
|
-
* @return
|
|
19
|
+
* Возвращает объект.
|
|
20
|
+
* @param key Ключ.
|
|
21
|
+
* @return Запрашиваемое значение.
|
|
11
22
|
*/
|
|
12
|
-
export const getItem = key => {
|
|
13
|
-
const { value, expire } = JSON.parse(localStorage.getItem(key)
|
|
23
|
+
export const getItem = (key: string): unknown => {
|
|
24
|
+
const { value, expire } = JSON.parse(localStorage.getItem(key) || '{}');
|
|
14
25
|
const now = Date.now();
|
|
15
26
|
const isExpired = expire
|
|
16
27
|
? now > expire
|
|
@@ -22,12 +33,12 @@ export const getItem = key => {
|
|
|
22
33
|
};
|
|
23
34
|
|
|
24
35
|
/**
|
|
25
|
-
* Добавляет
|
|
26
|
-
* @param
|
|
27
|
-
* @param
|
|
28
|
-
* @param
|
|
36
|
+
* Добавляет значение.
|
|
37
|
+
* @param key Ключ.
|
|
38
|
+
* @param value Значение.
|
|
39
|
+
* @param duration Время жизни значения в секундах.
|
|
29
40
|
*/
|
|
30
|
-
export const setItem = (key, value, duration = 3600) => {
|
|
41
|
+
export const setItem = (key: string, value: any, duration = 3600) => {
|
|
31
42
|
const now = Date.now();
|
|
32
43
|
const durationMs = duration * 1000;
|
|
33
44
|
const expire = now + durationMs;
|
|
@@ -39,12 +50,13 @@ export const setItem = (key, value, duration = 3600) => {
|
|
|
39
50
|
};
|
|
40
51
|
|
|
41
52
|
/**
|
|
42
|
-
* Определяет,
|
|
43
|
-
* @param
|
|
44
|
-
* @return
|
|
53
|
+
* Определяет, превышена ли квота.
|
|
54
|
+
* @param error Информация об ошибке.
|
|
55
|
+
* @return Признак превышения квоты.
|
|
45
56
|
*/
|
|
46
|
-
export const isQuotaExceeded = error => {
|
|
57
|
+
export const isQuotaExceeded = (error: any): boolean => {
|
|
47
58
|
let quotaExceeded = false;
|
|
59
|
+
|
|
48
60
|
if (error) {
|
|
49
61
|
if (error.code) {
|
|
50
62
|
switch (error.code) {
|
|
@@ -59,22 +71,22 @@ export const isQuotaExceeded = error => {
|
|
|
59
71
|
break;
|
|
60
72
|
}
|
|
61
73
|
} else if (error.number === -2147024882) {
|
|
62
|
-
//
|
|
74
|
+
// IE 8
|
|
63
75
|
quotaExceeded = true;
|
|
64
76
|
}
|
|
65
77
|
}
|
|
78
|
+
|
|
66
79
|
return quotaExceeded;
|
|
67
80
|
};
|
|
68
81
|
|
|
69
82
|
/**
|
|
70
83
|
* Набор методов для работы с кэшем.
|
|
71
|
-
* @type {{set: Function, get: Function, status: boolean}}
|
|
72
84
|
*/
|
|
73
|
-
const
|
|
85
|
+
const LocalStorageCache = {
|
|
74
86
|
get: getItem,
|
|
75
87
|
set: setItem,
|
|
76
88
|
status: isAvailable(),
|
|
77
89
|
quotaExceeded: isQuotaExceeded,
|
|
78
|
-
};
|
|
90
|
+
} as const;
|
|
79
91
|
|
|
80
|
-
export default
|
|
92
|
+
export default LocalStorageCache;
|