@sima-land/isomorph 11.0.0-alpha.42 → 11.0.0-alpha.43

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "@sima-land/isomorph",
4
- "version": "11.0.0-alpha.42",
4
+ "version": "11.0.0-alpha.43",
5
5
  "dependencies": {
6
6
  "@humanwhocodes/env": "^2.2.2",
7
7
  "@krutoo/fetch-tools": "^0.0.10",
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createStorageUtils = createStorageUtils;
6
+ exports.createSafeStorage = createSafeStorage;
7
7
  /* eslint-disable require-jsdoc, jsdoc/require-jsdoc */
8
8
 
9
9
  /**
@@ -14,10 +14,9 @@ exports.createStorageUtils = createStorageUtils;
14
14
  * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
15
15
  * @param getStorage Функция, которая должна вернуть целевое хранилище.
16
16
  * @return Объект-обертка для безопасной работы с браузерным хранилищем.
17
- * @todo Пересмотреть и перенести из browser?
18
17
  */
19
- function createStorageUtils(getStorage) {
20
- function isAvailable() {
18
+ function createSafeStorage(getStorage) {
19
+ const isAvailable = () => {
21
20
  try {
22
21
  const testKey = `storage_test_key::${Date.now()}`;
23
22
  getStorage().setItem(testKey, testKey);
@@ -26,40 +25,40 @@ function createStorageUtils(getStorage) {
26
25
  } catch {
27
26
  return false;
28
27
  }
29
- }
30
- function clear() {
28
+ };
29
+ const clear = () => {
31
30
  if (isAvailable()) {
32
31
  getStorage().clear();
33
32
  }
34
- }
35
- function getItem(name) {
33
+ };
34
+ const getItem = name => {
36
35
  if (isAvailable()) {
37
36
  return getStorage().getItem(name);
38
37
  }
39
38
  return null;
40
- }
41
- function key(index) {
39
+ };
40
+ const key = index => {
42
41
  if (isAvailable()) {
43
42
  return getStorage().key(index);
44
43
  }
45
44
  return null;
46
- }
47
- function removeItem(name) {
45
+ };
46
+ const removeItem = name => {
48
47
  if (isAvailable()) {
49
48
  getStorage().removeItem(name);
50
49
  }
51
- }
52
- function setItem(name, value) {
50
+ };
51
+ const setItem = (name, value) => {
53
52
  if (isAvailable()) {
54
53
  getStorage().setItem(name, value);
55
54
  }
56
- }
57
- function length() {
55
+ };
56
+ const getLength = () => {
58
57
  if (isAvailable()) {
59
58
  return getStorage().length;
60
59
  }
61
60
  return 0;
62
- }
61
+ };
63
62
  return {
64
63
  isAvailable,
65
64
  clear,
@@ -68,7 +67,7 @@ function createStorageUtils(getStorage) {
68
67
  removeItem,
69
68
  setItem,
70
69
  get length() {
71
- return length();
70
+ return getLength();
72
71
  }
73
72
  };
74
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createStorageUtils","getStorage","isAvailable","testKey","Date","now","setItem","removeItem","clear","getItem","name","key","index","value","length"],"sources":["../../../../../src/utils/web/storage/index.ts"],"sourcesContent":["/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */\n\n/**\n * Интерфейс объекта-обертки для безопасной работы с WebStorage.\n */\nexport interface StorageUtils\n extends Pick<Storage, 'clear' | 'getItem' | 'key' | 'removeItem' | 'setItem' | 'length'> {\n isAvailable: () => boolean;\n}\n\n/**\n * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).\n * @param getStorage Функция, которая должна вернуть целевое хранилище.\n * @return Объект-обертка для безопасной работы с браузерным хранилищем.\n * @todo Пересмотреть и перенести из browser?\n */\nexport function createStorageUtils(getStorage: () => Storage): StorageUtils {\n function isAvailable(): boolean {\n try {\n const testKey = `storage_test_key::${Date.now()}`;\n\n getStorage().setItem(testKey, testKey);\n getStorage().removeItem(testKey);\n\n return true;\n } catch {\n return false;\n }\n }\n\n function clear(): void {\n if (isAvailable()) {\n getStorage().clear();\n }\n }\n\n function getItem(name: string): string | null {\n if (isAvailable()) {\n return getStorage().getItem(name);\n }\n\n return null;\n }\n\n function key(index: number): string | null {\n if (isAvailable()) {\n return getStorage().key(index);\n }\n return null;\n }\n\n function removeItem(name: string): void {\n if (isAvailable()) {\n getStorage().removeItem(name);\n }\n }\n\n function setItem(name: string, value: string): void {\n if (isAvailable()) {\n getStorage().setItem(name, value);\n }\n }\n\n function length(): number {\n if (isAvailable()) {\n return getStorage().length;\n }\n\n return 0;\n }\n\n return {\n isAvailable,\n\n clear,\n getItem,\n key,\n removeItem,\n setItem,\n get length() {\n return length();\n },\n };\n}\n"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,kBAAkBA,CAACC,UAAyB,EAAgB;EAC1E,SAASC,WAAWA,CAAA,EAAY;IAC9B,IAAI;MACF,MAAMC,OAAO,GAAI,qBAAoBC,IAAI,CAACC,GAAG,CAAC,CAAE,EAAC;MAEjDJ,UAAU,CAAC,CAAC,CAACK,OAAO,CAACH,OAAO,EAAEA,OAAO,CAAC;MACtCF,UAAU,CAAC,CAAC,CAACM,UAAU,CAACJ,OAAO,CAAC;MAEhC,OAAO,IAAI;IACb,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;EAEA,SAASK,KAAKA,CAAA,EAAS;IACrB,IAAIN,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACO,KAAK,CAAC,CAAC;IACtB;EACF;EAEA,SAASC,OAAOA,CAACC,IAAY,EAAiB;IAC5C,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACQ,OAAO,CAACC,IAAI,CAAC;IACnC;IAEA,OAAO,IAAI;EACb;EAEA,SAASC,GAAGA,CAACC,KAAa,EAAiB;IACzC,IAAIV,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACU,GAAG,CAACC,KAAK,CAAC;IAChC;IACA,OAAO,IAAI;EACb;EAEA,SAASL,UAAUA,CAACG,IAAY,EAAQ;IACtC,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACM,UAAU,CAACG,IAAI,CAAC;IAC/B;EACF;EAEA,SAASJ,OAAOA,CAACI,IAAY,EAAEG,KAAa,EAAQ;IAClD,IAAIX,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACK,OAAO,CAACI,IAAI,EAAEG,KAAK,CAAC;IACnC;EACF;EAEA,SAASC,MAAMA,CAAA,EAAW;IACxB,IAAIZ,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACa,MAAM;IAC5B;IAEA,OAAO,CAAC;EACV;EAEA,OAAO;IACLZ,WAAW;IAEXM,KAAK;IACLC,OAAO;IACPE,GAAG;IACHJ,UAAU;IACVD,OAAO;IACP,IAAIQ,MAAMA,CAAA,EAAG;MACX,OAAOA,MAAM,CAAC,CAAC;IACjB;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"index.js","names":["createSafeStorage","getStorage","isAvailable","testKey","Date","now","setItem","removeItem","clear","getItem","name","key","index","value","getLength","length"],"sources":["../../../../../src/utils/web/storage/index.ts"],"sourcesContent":["/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */\n\n/**\n * Интерфейс объекта-обертки для безопасной работы с WebStorage.\n */\nexport interface SafeStorage extends Storage {\n isAvailable: () => boolean;\n}\n\n/**\n * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).\n * @param getStorage Функция, которая должна вернуть целевое хранилище.\n * @return Объект-обертка для безопасной работы с браузерным хранилищем.\n */\nexport function createSafeStorage(getStorage: () => Storage): SafeStorage {\n const isAvailable = (): boolean => {\n try {\n const testKey = `storage_test_key::${Date.now()}`;\n\n getStorage().setItem(testKey, testKey);\n getStorage().removeItem(testKey);\n\n return true;\n } catch {\n return false;\n }\n };\n\n const clear = (): void => {\n if (isAvailable()) {\n getStorage().clear();\n }\n };\n\n const getItem = (name: string): string | null => {\n if (isAvailable()) {\n return getStorage().getItem(name);\n }\n\n return null;\n };\n\n const key = (index: number): string | null => {\n if (isAvailable()) {\n return getStorage().key(index);\n }\n\n return null;\n };\n\n const removeItem = (name: string): void => {\n if (isAvailable()) {\n getStorage().removeItem(name);\n }\n };\n\n const setItem = (name: string, value: string): void => {\n if (isAvailable()) {\n getStorage().setItem(name, value);\n }\n };\n\n const getLength = (): number => {\n if (isAvailable()) {\n return getStorage().length;\n }\n\n return 0;\n };\n\n return {\n isAvailable,\n\n clear,\n getItem,\n key,\n removeItem,\n setItem,\n get length() {\n return getLength();\n },\n };\n}\n"],"mappings":";;;;;;AAAA;;AAEA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAACC,UAAyB,EAAe;EACxE,MAAMC,WAAW,GAAGA,CAAA,KAAe;IACjC,IAAI;MACF,MAAMC,OAAO,GAAI,qBAAoBC,IAAI,CAACC,GAAG,CAAC,CAAE,EAAC;MAEjDJ,UAAU,CAAC,CAAC,CAACK,OAAO,CAACH,OAAO,EAAEA,OAAO,CAAC;MACtCF,UAAU,CAAC,CAAC,CAACM,UAAU,CAACJ,OAAO,CAAC;MAEhC,OAAO,IAAI;IACb,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF,CAAC;EAED,MAAMK,KAAK,GAAGA,CAAA,KAAY;IACxB,IAAIN,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACO,KAAK,CAAC,CAAC;IACtB;EACF,CAAC;EAED,MAAMC,OAAO,GAAIC,IAAY,IAAoB;IAC/C,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACQ,OAAO,CAACC,IAAI,CAAC;IACnC;IAEA,OAAO,IAAI;EACb,CAAC;EAED,MAAMC,GAAG,GAAIC,KAAa,IAAoB;IAC5C,IAAIV,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACU,GAAG,CAACC,KAAK,CAAC;IAChC;IAEA,OAAO,IAAI;EACb,CAAC;EAED,MAAML,UAAU,GAAIG,IAAY,IAAW;IACzC,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACM,UAAU,CAACG,IAAI,CAAC;IAC/B;EACF,CAAC;EAED,MAAMJ,OAAO,GAAGA,CAACI,IAAY,EAAEG,KAAa,KAAW;IACrD,IAAIX,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACK,OAAO,CAACI,IAAI,EAAEG,KAAK,CAAC;IACnC;EACF,CAAC;EAED,MAAMC,SAAS,GAAGA,CAAA,KAAc;IAC9B,IAAIZ,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACc,MAAM;IAC5B;IAEA,OAAO,CAAC;EACV,CAAC;EAED,OAAO;IACLb,WAAW;IAEXM,KAAK;IACLC,OAAO;IACPE,GAAG;IACHJ,UAAU;IACVD,OAAO;IACP,IAAIS,MAAMA,CAAA,EAAG;MACX,OAAOD,SAAS,CAAC,CAAC;IACpB;EACF,CAAC;AACH"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sima-land/isomorph",
4
- "version": "11.0.0-alpha.42",
4
+ "version": "11.0.0-alpha.43",
5
5
  "dependencies": {
6
6
  "@humanwhocodes/env": "^2.2.2",
7
7
  "@krutoo/fetch-tools": "^0.0.10",
@@ -8,10 +8,9 @@
8
8
  * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
9
9
  * @param getStorage Функция, которая должна вернуть целевое хранилище.
10
10
  * @return Объект-обертка для безопасной работы с браузерным хранилищем.
11
- * @todo Пересмотреть и перенести из browser?
12
11
  */
13
- export function createStorageUtils(getStorage) {
14
- function isAvailable() {
12
+ export function createSafeStorage(getStorage) {
13
+ const isAvailable = () => {
15
14
  try {
16
15
  const testKey = `storage_test_key::${Date.now()}`;
17
16
  getStorage().setItem(testKey, testKey);
@@ -20,40 +19,40 @@ export function createStorageUtils(getStorage) {
20
19
  } catch {
21
20
  return false;
22
21
  }
23
- }
24
- function clear() {
22
+ };
23
+ const clear = () => {
25
24
  if (isAvailable()) {
26
25
  getStorage().clear();
27
26
  }
28
- }
29
- function getItem(name) {
27
+ };
28
+ const getItem = name => {
30
29
  if (isAvailable()) {
31
30
  return getStorage().getItem(name);
32
31
  }
33
32
  return null;
34
- }
35
- function key(index) {
33
+ };
34
+ const key = index => {
36
35
  if (isAvailable()) {
37
36
  return getStorage().key(index);
38
37
  }
39
38
  return null;
40
- }
41
- function removeItem(name) {
39
+ };
40
+ const removeItem = name => {
42
41
  if (isAvailable()) {
43
42
  getStorage().removeItem(name);
44
43
  }
45
- }
46
- function setItem(name, value) {
44
+ };
45
+ const setItem = (name, value) => {
47
46
  if (isAvailable()) {
48
47
  getStorage().setItem(name, value);
49
48
  }
50
- }
51
- function length() {
49
+ };
50
+ const getLength = () => {
52
51
  if (isAvailable()) {
53
52
  return getStorage().length;
54
53
  }
55
54
  return 0;
56
- }
55
+ };
57
56
  return {
58
57
  isAvailable,
59
58
  clear,
@@ -62,7 +61,7 @@ export function createStorageUtils(getStorage) {
62
61
  removeItem,
63
62
  setItem,
64
63
  get length() {
65
- return length();
64
+ return getLength();
66
65
  }
67
66
  };
68
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createStorageUtils","getStorage","isAvailable","testKey","Date","now","setItem","removeItem","clear","getItem","name","key","index","value","length"],"sources":["../../../../../src/utils/web/storage/index.ts"],"sourcesContent":["/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */\n\n/**\n * Интерфейс объекта-обертки для безопасной работы с WebStorage.\n */\nexport interface StorageUtils\n extends Pick<Storage, 'clear' | 'getItem' | 'key' | 'removeItem' | 'setItem' | 'length'> {\n isAvailable: () => boolean;\n}\n\n/**\n * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).\n * @param getStorage Функция, которая должна вернуть целевое хранилище.\n * @return Объект-обертка для безопасной работы с браузерным хранилищем.\n * @todo Пересмотреть и перенести из browser?\n */\nexport function createStorageUtils(getStorage: () => Storage): StorageUtils {\n function isAvailable(): boolean {\n try {\n const testKey = `storage_test_key::${Date.now()}`;\n\n getStorage().setItem(testKey, testKey);\n getStorage().removeItem(testKey);\n\n return true;\n } catch {\n return false;\n }\n }\n\n function clear(): void {\n if (isAvailable()) {\n getStorage().clear();\n }\n }\n\n function getItem(name: string): string | null {\n if (isAvailable()) {\n return getStorage().getItem(name);\n }\n\n return null;\n }\n\n function key(index: number): string | null {\n if (isAvailable()) {\n return getStorage().key(index);\n }\n return null;\n }\n\n function removeItem(name: string): void {\n if (isAvailable()) {\n getStorage().removeItem(name);\n }\n }\n\n function setItem(name: string, value: string): void {\n if (isAvailable()) {\n getStorage().setItem(name, value);\n }\n }\n\n function length(): number {\n if (isAvailable()) {\n return getStorage().length;\n }\n\n return 0;\n }\n\n return {\n isAvailable,\n\n clear,\n getItem,\n key,\n removeItem,\n setItem,\n get length() {\n return length();\n },\n };\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,kBAAkBA,CAACC,UAAyB,EAAgB;EAC1E,SAASC,WAAWA,CAAA,EAAY;IAC9B,IAAI;MACF,MAAMC,OAAO,GAAI,qBAAoBC,IAAI,CAACC,GAAG,CAAC,CAAE,EAAC;MAEjDJ,UAAU,CAAC,CAAC,CAACK,OAAO,CAACH,OAAO,EAAEA,OAAO,CAAC;MACtCF,UAAU,CAAC,CAAC,CAACM,UAAU,CAACJ,OAAO,CAAC;MAEhC,OAAO,IAAI;IACb,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;EAEA,SAASK,KAAKA,CAAA,EAAS;IACrB,IAAIN,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACO,KAAK,CAAC,CAAC;IACtB;EACF;EAEA,SAASC,OAAOA,CAACC,IAAY,EAAiB;IAC5C,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACQ,OAAO,CAACC,IAAI,CAAC;IACnC;IAEA,OAAO,IAAI;EACb;EAEA,SAASC,GAAGA,CAACC,KAAa,EAAiB;IACzC,IAAIV,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACU,GAAG,CAACC,KAAK,CAAC;IAChC;IACA,OAAO,IAAI;EACb;EAEA,SAASL,UAAUA,CAACG,IAAY,EAAQ;IACtC,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACM,UAAU,CAACG,IAAI,CAAC;IAC/B;EACF;EAEA,SAASJ,OAAOA,CAACI,IAAY,EAAEG,KAAa,EAAQ;IAClD,IAAIX,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACK,OAAO,CAACI,IAAI,EAAEG,KAAK,CAAC;IACnC;EACF;EAEA,SAASC,MAAMA,CAAA,EAAW;IACxB,IAAIZ,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACa,MAAM;IAC5B;IAEA,OAAO,CAAC;EACV;EAEA,OAAO;IACLZ,WAAW;IAEXM,KAAK;IACLC,OAAO;IACPE,GAAG;IACHJ,UAAU;IACVD,OAAO;IACP,IAAIQ,MAAMA,CAAA,EAAG;MACX,OAAOA,MAAM,CAAC,CAAC;IACjB;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"index.js","names":["createSafeStorage","getStorage","isAvailable","testKey","Date","now","setItem","removeItem","clear","getItem","name","key","index","value","getLength","length"],"sources":["../../../../../src/utils/web/storage/index.ts"],"sourcesContent":["/* eslint-disable require-jsdoc, jsdoc/require-jsdoc */\n\n/**\n * Интерфейс объекта-обертки для безопасной работы с WebStorage.\n */\nexport interface SafeStorage extends Storage {\n isAvailable: () => boolean;\n}\n\n/**\n * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).\n * @param getStorage Функция, которая должна вернуть целевое хранилище.\n * @return Объект-обертка для безопасной работы с браузерным хранилищем.\n */\nexport function createSafeStorage(getStorage: () => Storage): SafeStorage {\n const isAvailable = (): boolean => {\n try {\n const testKey = `storage_test_key::${Date.now()}`;\n\n getStorage().setItem(testKey, testKey);\n getStorage().removeItem(testKey);\n\n return true;\n } catch {\n return false;\n }\n };\n\n const clear = (): void => {\n if (isAvailable()) {\n getStorage().clear();\n }\n };\n\n const getItem = (name: string): string | null => {\n if (isAvailable()) {\n return getStorage().getItem(name);\n }\n\n return null;\n };\n\n const key = (index: number): string | null => {\n if (isAvailable()) {\n return getStorage().key(index);\n }\n\n return null;\n };\n\n const removeItem = (name: string): void => {\n if (isAvailable()) {\n getStorage().removeItem(name);\n }\n };\n\n const setItem = (name: string, value: string): void => {\n if (isAvailable()) {\n getStorage().setItem(name, value);\n }\n };\n\n const getLength = (): number => {\n if (isAvailable()) {\n return getStorage().length;\n }\n\n return 0;\n };\n\n return {\n isAvailable,\n\n clear,\n getItem,\n key,\n removeItem,\n setItem,\n get length() {\n return getLength();\n },\n };\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,iBAAiBA,CAACC,UAAyB,EAAe;EACxE,MAAMC,WAAW,GAAGA,CAAA,KAAe;IACjC,IAAI;MACF,MAAMC,OAAO,GAAI,qBAAoBC,IAAI,CAACC,GAAG,CAAC,CAAE,EAAC;MAEjDJ,UAAU,CAAC,CAAC,CAACK,OAAO,CAACH,OAAO,EAAEA,OAAO,CAAC;MACtCF,UAAU,CAAC,CAAC,CAACM,UAAU,CAACJ,OAAO,CAAC;MAEhC,OAAO,IAAI;IACb,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF,CAAC;EAED,MAAMK,KAAK,GAAGA,CAAA,KAAY;IACxB,IAAIN,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACO,KAAK,CAAC,CAAC;IACtB;EACF,CAAC;EAED,MAAMC,OAAO,GAAIC,IAAY,IAAoB;IAC/C,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACQ,OAAO,CAACC,IAAI,CAAC;IACnC;IAEA,OAAO,IAAI;EACb,CAAC;EAED,MAAMC,GAAG,GAAIC,KAAa,IAAoB;IAC5C,IAAIV,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACU,GAAG,CAACC,KAAK,CAAC;IAChC;IAEA,OAAO,IAAI;EACb,CAAC;EAED,MAAML,UAAU,GAAIG,IAAY,IAAW;IACzC,IAAIR,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACM,UAAU,CAACG,IAAI,CAAC;IAC/B;EACF,CAAC;EAED,MAAMJ,OAAO,GAAGA,CAACI,IAAY,EAAEG,KAAa,KAAW;IACrD,IAAIX,WAAW,CAAC,CAAC,EAAE;MACjBD,UAAU,CAAC,CAAC,CAACK,OAAO,CAACI,IAAI,EAAEG,KAAK,CAAC;IACnC;EACF,CAAC;EAED,MAAMC,SAAS,GAAGA,CAAA,KAAc;IAC9B,IAAIZ,WAAW,CAAC,CAAC,EAAE;MACjB,OAAOD,UAAU,CAAC,CAAC,CAACc,MAAM;IAC5B;IAEA,OAAO,CAAC;EACV,CAAC;EAED,OAAO;IACLb,WAAW;IAEXM,KAAK;IACLC,OAAO;IACPE,GAAG;IACHJ,UAAU;IACVD,OAAO;IACP,IAAIS,MAAMA,CAAA,EAAG;MACX,OAAOD,SAAS,CAAC,CAAC;IACpB;EACF,CAAC;AACH"}
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * Интерфейс объекта-обертки для безопасной работы с WebStorage.
3
3
  */
4
- export interface StorageUtils extends Pick<Storage, 'clear' | 'getItem' | 'key' | 'removeItem' | 'setItem' | 'length'> {
4
+ export interface SafeStorage extends Storage {
5
5
  isAvailable: () => boolean;
6
6
  }
7
7
  /**
8
8
  * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
9
9
  * @param getStorage Функция, которая должна вернуть целевое хранилище.
10
10
  * @return Объект-обертка для безопасной работы с браузерным хранилищем.
11
- * @todo Пересмотреть и перенести из browser?
12
11
  */
13
- export declare function createStorageUtils(getStorage: () => Storage): StorageUtils;
12
+ export declare function createSafeStorage(getStorage: () => Storage): SafeStorage;
14
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/utils/web/storage/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxF,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,OAAO,GAAG,YAAY,CAmE1E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/utils/web/storage/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,OAAO,GAAG,WAAW,CAoExE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sima-land/isomorph",
3
- "version": "11.0.0-alpha.42",
3
+ "version": "11.0.0-alpha.43",
4
4
  "description": "Tiny framework for fast start frontend microservices",
5
5
  "author": "www.sima-land.ru team",
6
6
  "license": "Apache-2.0",
@@ -157,6 +157,12 @@
157
157
  "import": "./dist/esm/utils/web/analytics/index.js",
158
158
  "default": "./dist/esm/utils/web/analytics/index.js"
159
159
  },
160
+ "./utils/web/storage": {
161
+ "types": "./dist/types/utils/web/storage/index.d.ts",
162
+ "require": "./dist/cjs/utils/web/storage/index.js",
163
+ "import": "./dist/esm/utils/web/storage/index.js",
164
+ "default": "./dist/esm/utils/web/storage/index.js"
165
+ },
160
166
  "./utils/webpack": {
161
167
  "types": "./dist/types/utils/webpack/index.d.ts",
162
168
  "require": "./dist/cjs/utils/webpack/index.js",
@@ -238,6 +244,9 @@
238
244
  "utils/web/analytics": [
239
245
  "./dist/types/utils/web/analytics/index.d.ts"
240
246
  ],
247
+ "utils/web/storage": [
248
+ "./dist/types/utils/web/storage/index.d.ts"
249
+ ],
241
250
  "utils/webpack": [
242
251
  "./dist/types/utils/webpack/index.d.ts"
243
252
  ]
@@ -3,8 +3,7 @@
3
3
  /**
4
4
  * Интерфейс объекта-обертки для безопасной работы с WebStorage.
5
5
  */
6
- export interface StorageUtils
7
- extends Pick<Storage, 'clear' | 'getItem' | 'key' | 'removeItem' | 'setItem' | 'length'> {
6
+ export interface SafeStorage extends Storage {
8
7
  isAvailable: () => boolean;
9
8
  }
10
9
 
@@ -12,10 +11,9 @@ export interface StorageUtils
12
11
  * Возвращает объект для безопасной работы с браузерным хранилищем (LocalStorage, SessionStorage).
13
12
  * @param getStorage Функция, которая должна вернуть целевое хранилище.
14
13
  * @return Объект-обертка для безопасной работы с браузерным хранилищем.
15
- * @todo Пересмотреть и перенести из browser?
16
14
  */
17
- export function createStorageUtils(getStorage: () => Storage): StorageUtils {
18
- function isAvailable(): boolean {
15
+ export function createSafeStorage(getStorage: () => Storage): SafeStorage {
16
+ const isAvailable = (): boolean => {
19
17
  try {
20
18
  const testKey = `storage_test_key::${Date.now()}`;
21
19
 
@@ -26,48 +24,49 @@ export function createStorageUtils(getStorage: () => Storage): StorageUtils {
26
24
  } catch {
27
25
  return false;
28
26
  }
29
- }
27
+ };
30
28
 
31
- function clear(): void {
29
+ const clear = (): void => {
32
30
  if (isAvailable()) {
33
31
  getStorage().clear();
34
32
  }
35
- }
33
+ };
36
34
 
37
- function getItem(name: string): string | null {
35
+ const getItem = (name: string): string | null => {
38
36
  if (isAvailable()) {
39
37
  return getStorage().getItem(name);
40
38
  }
41
39
 
42
40
  return null;
43
- }
41
+ };
44
42
 
45
- function key(index: number): string | null {
43
+ const key = (index: number): string | null => {
46
44
  if (isAvailable()) {
47
45
  return getStorage().key(index);
48
46
  }
47
+
49
48
  return null;
50
- }
49
+ };
51
50
 
52
- function removeItem(name: string): void {
51
+ const removeItem = (name: string): void => {
53
52
  if (isAvailable()) {
54
53
  getStorage().removeItem(name);
55
54
  }
56
- }
55
+ };
57
56
 
58
- function setItem(name: string, value: string): void {
57
+ const setItem = (name: string, value: string): void => {
59
58
  if (isAvailable()) {
60
59
  getStorage().setItem(name, value);
61
60
  }
62
- }
61
+ };
63
62
 
64
- function length(): number {
63
+ const getLength = (): number => {
65
64
  if (isAvailable()) {
66
65
  return getStorage().length;
67
66
  }
68
67
 
69
68
  return 0;
70
- }
69
+ };
71
70
 
72
71
  return {
73
72
  isAvailable,
@@ -78,7 +77,7 @@ export function createStorageUtils(getStorage: () => Storage): StorageUtils {
78
77
  removeItem,
79
78
  setItem,
80
79
  get length() {
81
- return length();
80
+ return getLength();
82
81
  },
83
82
  };
84
83
  }