@fast-china/utils 1.0.12 → 1.0.13

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.
@@ -11,17 +11,18 @@ export declare const useStorage: () => {
11
11
  * 设置缓存前缀 Key
12
12
  * @param key
13
13
  */
14
- prefix(key: string): void;
14
+ setPrefix(key: string): void;
15
15
  /**
16
16
  * 缓存过期值后缀 Key
17
17
  * @param key
18
18
  */
19
- expireSuffix(key: string): void;
19
+ setExpireSuffix(key: string): void;
20
20
  /**
21
21
  * 设置缓存是否加密
22
+ * @description 请在初始化的时候确认,后续不可再修改,否则所有数据都将失效
22
23
  * @param crypto
23
24
  */
24
- crypto(crypto: boolean): void;
25
+ setCrypto(crypto: boolean): void;
25
26
  };
26
27
  /**
27
28
  * window.localStorage
@@ -15,21 +15,22 @@ const useStorage = () => {
15
15
  * 设置缓存前缀 Key
16
16
  * @param key
17
17
  */
18
- prefix(key) {
18
+ setPrefix(key) {
19
19
  state.prefix = key;
20
20
  },
21
21
  /**
22
22
  * 缓存过期值后缀 Key
23
23
  * @param key
24
24
  */
25
- expireSuffix(key) {
25
+ setExpireSuffix(key) {
26
26
  state.expireSuffix = key;
27
27
  },
28
28
  /**
29
29
  * 设置缓存是否加密
30
+ * @description 请在初始化的时候确认,后续不可再修改,否则所有数据都将失效
30
31
  * @param crypto
31
32
  */
32
- crypto(crypto) {
33
+ setCrypto(crypto) {
33
34
  state.crypto = crypto;
34
35
  }
35
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/storage/index.ts"],"sourcesContent":["import { computed, reactive } from \"vue\";\nimport { base64Util } from \"../base64\";\nimport { consoleError } from \"../console\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\tprefix: \"fast__\",\n\texpireSuffix: \"__Expire\",\n\tcrypto: false,\n});\n\n/**\n * 本地缓存前缀 Key\n */\nexport const CACHE_PREFIX = computed(() => state.prefix);\n\n/**\n * 本地缓存过期值后缀 Key\n */\nexport const CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useStorage = () => {\n\treturn {\n\t\t/**\n\t\t * 设置缓存前缀 Key\n\t\t * @param key\n\t\t */\n\t\tprefix(key: string): void {\n\t\t\tstate.prefix = key;\n\t\t},\n\t\t/**\n\t\t * 缓存过期值后缀 Key\n\t\t * @param key\n\t\t */\n\t\texpireSuffix(key: string): void {\n\t\t\tstate.expireSuffix = key;\n\t\t},\n\t\t/**\n\t\t * 设置缓存是否加密\n\t\t * @param crypto\n\t\t */\n\t\tcrypto(crypto: boolean): void {\n\t\t\tstate.crypto = crypto;\n\t\t},\n\t};\n};\n\nconst storage = {\n\tset(key: string, val: any): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.setStorageSync(key, val);\n\t\t} else {\n\t\t\twindow.localStorage.setItem(key, val);\n\t\t}\n\t},\n\tget(key: string): string | any | null {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageSync(key);\n\t\t} else {\n\t\t\treturn window.localStorage.getItem(key);\n\t\t}\n\t},\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.removeStorageSync(key);\n\t\t} else {\n\t\t\twindow.localStorage.removeItem(key);\n\t\t}\n\t},\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.clearStorageSync();\n\t\t} else {\n\t\t\twindow.localStorage.clear();\n\t\t}\n\t},\n\tkeys(): string[] | Storage {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageInfoSync().keys;\n\t\t} else {\n\t\t\treturn window.localStorage;\n\t\t}\n\t},\n};\n\n/**\n * window.localStorage\n * - 如果是 UniApp 环境则使用的是 uni.xxxStorage\n */\nexport const Local = {\n\t/**\n\t * 设置\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\tstorage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\tstorage.set(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = storage.get(`${state.prefix}${key}`);\n\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\ttry {\n\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\ttry {\n\t\t\tfor (const itemKey in storage.keys) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\tstorage.remove(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部\n\t */\n\tclear(): void {\n\t\ttry {\n\t\t\tstorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n};\n\n/**\n * window.sessionStorage\n * - UniApp 环境下不可用\n */\nexport const Session = {\n\t/**\n\t * 设置会话缓存\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取会话缓存\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tfor (const itemKey in window.sessionStorage) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\twindow.sessionStorage.removeItem(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部会话缓存\n\t */\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/storage/index.ts"],"sourcesContent":["import { computed, reactive } from \"vue\";\nimport { base64Util } from \"../base64\";\nimport { consoleError } from \"../console\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\tprefix: \"fast__\",\n\texpireSuffix: \"__Expire\",\n\tcrypto: false,\n});\n\n/**\n * 本地缓存前缀 Key\n */\nexport const CACHE_PREFIX = computed(() => state.prefix);\n\n/**\n * 本地缓存过期值后缀 Key\n */\nexport const CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useStorage = () => {\n\treturn {\n\t\t/**\n\t\t * 设置缓存前缀 Key\n\t\t * @param key\n\t\t */\n\t\tsetPrefix(key: string): void {\n\t\t\tstate.prefix = key;\n\t\t},\n\t\t/**\n\t\t * 缓存过期值后缀 Key\n\t\t * @param key\n\t\t */\n\t\tsetExpireSuffix(key: string): void {\n\t\t\tstate.expireSuffix = key;\n\t\t},\n\t\t/**\n\t\t * 设置缓存是否加密\n\t\t * @description 请在初始化的时候确认,后续不可再修改,否则所有数据都将失效\n\t\t * @param crypto\n\t\t */\n\t\tsetCrypto(crypto: boolean): void {\n\t\t\tstate.crypto = crypto;\n\t\t},\n\t};\n};\n\nconst storage = {\n\tset(key: string, val: any): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.setStorageSync(key, val);\n\t\t} else {\n\t\t\twindow.localStorage.setItem(key, val);\n\t\t}\n\t},\n\tget(key: string): string | any | null {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageSync(key);\n\t\t} else {\n\t\t\treturn window.localStorage.getItem(key);\n\t\t}\n\t},\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.removeStorageSync(key);\n\t\t} else {\n\t\t\twindow.localStorage.removeItem(key);\n\t\t}\n\t},\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.clearStorageSync();\n\t\t} else {\n\t\t\twindow.localStorage.clear();\n\t\t}\n\t},\n\tkeys(): string[] | Storage {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageInfoSync().keys;\n\t\t} else {\n\t\t\treturn window.localStorage;\n\t\t}\n\t},\n};\n\n/**\n * window.localStorage\n * - 如果是 UniApp 环境则使用的是 uni.xxxStorage\n */\nexport const Local = {\n\t/**\n\t * 设置\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\tstorage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\tstorage.set(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = storage.get(`${state.prefix}${key}`);\n\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\ttry {\n\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\ttry {\n\t\t\tfor (const itemKey in storage.keys) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\tstorage.remove(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部\n\t */\n\tclear(): void {\n\t\ttry {\n\t\t\tstorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n};\n\n/**\n * window.sessionStorage\n * - UniApp 环境下不可用\n */\nexport const Session = {\n\t/**\n\t * 设置会话缓存\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取会话缓存\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tfor (const itemKey in window.sessionStorage) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\twindow.sessionStorage.removeItem(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部会话缓存\n\t */\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n};\n"],"names":[],"mappings":"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"}
@@ -11,17 +11,18 @@ export declare const useStorage: () => {
11
11
  * 设置缓存前缀 Key
12
12
  * @param key
13
13
  */
14
- prefix(key: string): void;
14
+ setPrefix(key: string): void;
15
15
  /**
16
16
  * 缓存过期值后缀 Key
17
17
  * @param key
18
18
  */
19
- expireSuffix(key: string): void;
19
+ setExpireSuffix(key: string): void;
20
20
  /**
21
21
  * 设置缓存是否加密
22
+ * @description 请在初始化的时候确认,后续不可再修改,否则所有数据都将失效
22
23
  * @param crypto
23
24
  */
24
- crypto(crypto: boolean): void;
25
+ setCrypto(crypto: boolean): void;
25
26
  };
26
27
  /**
27
28
  * window.localStorage
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("../base64/index.js"),o=require("../console/index.js"),i=require("../error/index.js"),t=e.reactive({prefix:"fast__",expireSuffix:"__Expire",crypto:!1}),n=e.computed((()=>t.prefix)),s=e.computed((()=>t.expireSuffix)),f={set(e,r){"undefined"!=typeof uni?uni.setStorageSync(e,r):window.localStorage.setItem(e,r)},get:e=>"undefined"!=typeof uni?uni.getStorageSync(e):window.localStorage.getItem(e),remove(e){"undefined"!=typeof uni?uni.removeStorageSync(e):window.localStorage.removeItem(e)},clear(){"undefined"!=typeof uni?uni.clearStorageSync():window.localStorage.clear()},keys:()=>"undefined"!=typeof uni?uni.getStorageInfoSync().keys:window.localStorage},c={set(e,n,s,c){try{if(c??(c=t.crypto),s){if(isNaN(s)||s<1)throw new i.FastError("有效期应为一个有效数值");const r={time:Date.now(),expire:s},o=JSON.stringify(r);f.set(`${t.prefix}${e}${t.expireSuffix}`,o)}let o=JSON.stringify(n);c&&(o=r.base64Util.toBase64(o)),f.set(`${t.prefix}${e}`,o)}catch(p){o.consoleError("Local",p)}},get(e,i){try{i??(i=t.crypto);let o=f.get(`${t.prefix}${e}`);if(o){i&&(o=r.base64Util.base64ToStr(o));const n=f.get(`${t.prefix}${e}${t.expireSuffix}`);if(n){const r=JSON.parse(n);if(Date.now()>r.time+60*r.expire*1e3)return f.remove(`${t.prefix}${e}`),f.remove(`${t.prefix}${e}${t.expireSuffix}`),null}try{return JSON.parse(o)}catch{return o}}return null}catch(n){o.consoleError("Local",n)}},remove(e){try{f.remove(`${t.prefix}${e}`),f.remove(`${t.prefix}${e}${t.expireSuffix}`)}catch(r){o.consoleError("Local",r)}},removeByPrefix(e){try{for(const r in f.keys)-1!==r.indexOf(`${t.prefix}${e}`)&&f.remove(r)}catch(r){o.consoleError("Local",r)}},clear(){try{f.clear()}catch(e){o.consoleError("Local",e)}}},p={set(e,n,s,f){if("undefined"==typeof uni)try{if(f??(f=t.crypto),s){if(isNaN(s)||s<1)throw new i.FastError("有效期应为一个有效数值");const r={time:Date.now(),expire:s},o=JSON.stringify(r);window.sessionStorage.setItem(`${t.prefix}${e}${t.expireSuffix}`,o)}let o=JSON.stringify(n);f&&(o=r.base64Util.toBase64(o)),window.sessionStorage.setItem(`${t.prefix}${e}`,o)}catch(c){o.consoleError("Session",c)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},get(e,i){if("undefined"==typeof uni)try{i??(i=t.crypto);let o=window.sessionStorage.getItem(`${t.prefix}${e}`);if(o){i&&(o=r.base64Util.base64ToStr(o));const n=window.sessionStorage.getItem(`${t.prefix}${e}${t.expireSuffix}`);if(n){const r=JSON.parse(n);if(Date.now()>r.time+60*r.expire*1e3)return window.sessionStorage.removeItem(`${t.prefix}${e}`),window.sessionStorage.removeItem(`${t.prefix}${e}${t.expireSuffix}`),null}try{return JSON.parse(o)}catch{return o}}return null}catch(n){o.consoleError("Session",n)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},remove(e){if("undefined"==typeof uni)try{window.sessionStorage.removeItem(`${t.prefix}${e}`),window.sessionStorage.removeItem(`${t.prefix}${e}${t.expireSuffix}`)}catch(r){o.consoleError("Session",r)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},removeByPrefix(e){if("undefined"==typeof uni)try{for(const r in window.sessionStorage)-1!==r.indexOf(`${t.prefix}${e}`)&&window.sessionStorage.removeItem(r)}catch(r){o.consoleError("Session",r)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},clear(){if("undefined"==typeof uni)try{window.sessionStorage.clear()}catch(e){o.consoleError("Session",e)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")}};exports.CACHE_EXPIRE_SUFFIX=s,exports.CACHE_PREFIX=n,exports.Local=c,exports.Session=p,exports.useStorage=()=>({prefix(e){t.prefix=e},expireSuffix(e){t.expireSuffix=e},crypto(e){t.crypto=e}});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("../base64/index.js"),o=require("../console/index.js"),i=require("../error/index.js"),t=e.reactive({prefix:"fast__",expireSuffix:"__Expire",crypto:!1}),n=e.computed((()=>t.prefix)),s=e.computed((()=>t.expireSuffix)),f={set(e,r){"undefined"!=typeof uni?uni.setStorageSync(e,r):window.localStorage.setItem(e,r)},get:e=>"undefined"!=typeof uni?uni.getStorageSync(e):window.localStorage.getItem(e),remove(e){"undefined"!=typeof uni?uni.removeStorageSync(e):window.localStorage.removeItem(e)},clear(){"undefined"!=typeof uni?uni.clearStorageSync():window.localStorage.clear()},keys:()=>"undefined"!=typeof uni?uni.getStorageInfoSync().keys:window.localStorage},c={set(e,n,s,c){try{if(c??(c=t.crypto),s){if(isNaN(s)||s<1)throw new i.FastError("有效期应为一个有效数值");const r={time:Date.now(),expire:s},o=JSON.stringify(r);f.set(`${t.prefix}${e}${t.expireSuffix}`,o)}let o=JSON.stringify(n);c&&(o=r.base64Util.toBase64(o)),f.set(`${t.prefix}${e}`,o)}catch(p){o.consoleError("Local",p)}},get(e,i){try{i??(i=t.crypto);let o=f.get(`${t.prefix}${e}`);if(o){i&&(o=r.base64Util.base64ToStr(o));const n=f.get(`${t.prefix}${e}${t.expireSuffix}`);if(n){const r=JSON.parse(n);if(Date.now()>r.time+60*r.expire*1e3)return f.remove(`${t.prefix}${e}`),f.remove(`${t.prefix}${e}${t.expireSuffix}`),null}try{return JSON.parse(o)}catch{return o}}return null}catch(n){o.consoleError("Local",n)}},remove(e){try{f.remove(`${t.prefix}${e}`),f.remove(`${t.prefix}${e}${t.expireSuffix}`)}catch(r){o.consoleError("Local",r)}},removeByPrefix(e){try{for(const r in f.keys)-1!==r.indexOf(`${t.prefix}${e}`)&&f.remove(r)}catch(r){o.consoleError("Local",r)}},clear(){try{f.clear()}catch(e){o.consoleError("Local",e)}}},p={set(e,n,s,f){if("undefined"==typeof uni)try{if(f??(f=t.crypto),s){if(isNaN(s)||s<1)throw new i.FastError("有效期应为一个有效数值");const r={time:Date.now(),expire:s},o=JSON.stringify(r);window.sessionStorage.setItem(`${t.prefix}${e}${t.expireSuffix}`,o)}let o=JSON.stringify(n);f&&(o=r.base64Util.toBase64(o)),window.sessionStorage.setItem(`${t.prefix}${e}`,o)}catch(c){o.consoleError("Session",c)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},get(e,i){if("undefined"==typeof uni)try{i??(i=t.crypto);let o=window.sessionStorage.getItem(`${t.prefix}${e}`);if(o){i&&(o=r.base64Util.base64ToStr(o));const n=window.sessionStorage.getItem(`${t.prefix}${e}${t.expireSuffix}`);if(n){const r=JSON.parse(n);if(Date.now()>r.time+60*r.expire*1e3)return window.sessionStorage.removeItem(`${t.prefix}${e}`),window.sessionStorage.removeItem(`${t.prefix}${e}${t.expireSuffix}`),null}try{return JSON.parse(o)}catch{return o}}return null}catch(n){o.consoleError("Session",n)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},remove(e){if("undefined"==typeof uni)try{window.sessionStorage.removeItem(`${t.prefix}${e}`),window.sessionStorage.removeItem(`${t.prefix}${e}${t.expireSuffix}`)}catch(r){o.consoleError("Session",r)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},removeByPrefix(e){if("undefined"==typeof uni)try{for(const r in window.sessionStorage)-1!==r.indexOf(`${t.prefix}${e}`)&&window.sessionStorage.removeItem(r)}catch(r){o.consoleError("Session",r)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")},clear(){if("undefined"==typeof uni)try{window.sessionStorage.clear()}catch(e){o.consoleError("Session",e)}else o.consoleError("Session","UniApp 环境下 [Session] 不可用。")}};exports.CACHE_EXPIRE_SUFFIX=s,exports.CACHE_PREFIX=n,exports.Local=c,exports.Session=p,exports.useStorage=()=>({setPrefix(e){t.prefix=e},setExpireSuffix(e){t.expireSuffix=e},setCrypto(e){t.crypto=e}});
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/storage/index.ts"],"sourcesContent":["import { computed, reactive } from \"vue\";\nimport { base64Util } from \"../base64\";\nimport { consoleError } from \"../console\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\tprefix: \"fast__\",\n\texpireSuffix: \"__Expire\",\n\tcrypto: false,\n});\n\n/**\n * 本地缓存前缀 Key\n */\nexport const CACHE_PREFIX = computed(() => state.prefix);\n\n/**\n * 本地缓存过期值后缀 Key\n */\nexport const CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useStorage = () => {\n\treturn {\n\t\t/**\n\t\t * 设置缓存前缀 Key\n\t\t * @param key\n\t\t */\n\t\tprefix(key: string): void {\n\t\t\tstate.prefix = key;\n\t\t},\n\t\t/**\n\t\t * 缓存过期值后缀 Key\n\t\t * @param key\n\t\t */\n\t\texpireSuffix(key: string): void {\n\t\t\tstate.expireSuffix = key;\n\t\t},\n\t\t/**\n\t\t * 设置缓存是否加密\n\t\t * @param crypto\n\t\t */\n\t\tcrypto(crypto: boolean): void {\n\t\t\tstate.crypto = crypto;\n\t\t},\n\t};\n};\n\nconst storage = {\n\tset(key: string, val: any): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.setStorageSync(key, val);\n\t\t} else {\n\t\t\twindow.localStorage.setItem(key, val);\n\t\t}\n\t},\n\tget(key: string): string | any | null {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageSync(key);\n\t\t} else {\n\t\t\treturn window.localStorage.getItem(key);\n\t\t}\n\t},\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.removeStorageSync(key);\n\t\t} else {\n\t\t\twindow.localStorage.removeItem(key);\n\t\t}\n\t},\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.clearStorageSync();\n\t\t} else {\n\t\t\twindow.localStorage.clear();\n\t\t}\n\t},\n\tkeys(): string[] | Storage {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageInfoSync().keys;\n\t\t} else {\n\t\t\treturn window.localStorage;\n\t\t}\n\t},\n};\n\n/**\n * window.localStorage\n * - 如果是 UniApp 环境则使用的是 uni.xxxStorage\n */\nexport const Local = {\n\t/**\n\t * 设置\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\tstorage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\tstorage.set(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = storage.get(`${state.prefix}${key}`);\n\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\ttry {\n\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\ttry {\n\t\t\tfor (const itemKey in storage.keys) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\tstorage.remove(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部\n\t */\n\tclear(): void {\n\t\ttry {\n\t\t\tstorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n};\n\n/**\n * window.sessionStorage\n * - UniApp 环境下不可用\n */\nexport const Session = {\n\t/**\n\t * 设置会话缓存\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取会话缓存\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tfor (const itemKey in window.sessionStorage) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\twindow.sessionStorage.removeItem(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部会话缓存\n\t */\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n};\n"],"names":["state","reactive","prefix","expireSuffix","crypto","CACHE_PREFIX","computed","CACHE_EXPIRE_SUFFIX","storage","set","key","val","uni","setStorageSync","window","localStorage","setItem","get","getStorageSync","getItem","remove","removeStorageSync","removeItem","clear","clearStorageSync","keys","getStorageInfoSync","Local","expire","encrypt","isNaN","FastError","expireData","time","Date","now","expireJson","JSON","stringify","valJson","base64Util","toBase64","error","index","consoleError","decrypt","base64ToStr","parse","removeByPrefix","itemKey","indexOf","Session","sessionStorage"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/storage/index.ts"],"sourcesContent":["import { computed, reactive } from \"vue\";\nimport { base64Util } from \"../base64\";\nimport { consoleError } from \"../console\";\nimport { FastError } from \"../error\";\n\nconst state = reactive({\n\tprefix: \"fast__\",\n\texpireSuffix: \"__Expire\",\n\tcrypto: false,\n});\n\n/**\n * 本地缓存前缀 Key\n */\nexport const CACHE_PREFIX = computed(() => state.prefix);\n\n/**\n * 本地缓存过期值后缀 Key\n */\nexport const CACHE_EXPIRE_SUFFIX = computed(() => state.expireSuffix);\n\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/explicit-module-boundary-types\nexport const useStorage = () => {\n\treturn {\n\t\t/**\n\t\t * 设置缓存前缀 Key\n\t\t * @param key\n\t\t */\n\t\tsetPrefix(key: string): void {\n\t\t\tstate.prefix = key;\n\t\t},\n\t\t/**\n\t\t * 缓存过期值后缀 Key\n\t\t * @param key\n\t\t */\n\t\tsetExpireSuffix(key: string): void {\n\t\t\tstate.expireSuffix = key;\n\t\t},\n\t\t/**\n\t\t * 设置缓存是否加密\n\t\t * @description 请在初始化的时候确认,后续不可再修改,否则所有数据都将失效\n\t\t * @param crypto\n\t\t */\n\t\tsetCrypto(crypto: boolean): void {\n\t\t\tstate.crypto = crypto;\n\t\t},\n\t};\n};\n\nconst storage = {\n\tset(key: string, val: any): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.setStorageSync(key, val);\n\t\t} else {\n\t\t\twindow.localStorage.setItem(key, val);\n\t\t}\n\t},\n\tget(key: string): string | any | null {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageSync(key);\n\t\t} else {\n\t\t\treturn window.localStorage.getItem(key);\n\t\t}\n\t},\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.removeStorageSync(key);\n\t\t} else {\n\t\t\twindow.localStorage.removeItem(key);\n\t\t}\n\t},\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tuni.clearStorageSync();\n\t\t} else {\n\t\t\twindow.localStorage.clear();\n\t\t}\n\t},\n\tkeys(): string[] | Storage {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\treturn uni.getStorageInfoSync().keys;\n\t\t} else {\n\t\t\treturn window.localStorage;\n\t\t}\n\t},\n};\n\n/**\n * window.localStorage\n * - 如果是 UniApp 环境则使用的是 uni.xxxStorage\n */\nexport const Local = {\n\t/**\n\t * 设置\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\tstorage.set(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\tstorage.set(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = storage.get(`${state.prefix}${key}`);\n\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = storage.get(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\t\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\ttry {\n\t\t\tstorage.remove(`${state.prefix}${key}`);\n\t\t\tstorage.remove(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\ttry {\n\t\t\tfor (const itemKey in storage.keys) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\tstorage.remove(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部\n\t */\n\tclear(): void {\n\t\ttry {\n\t\t\tstorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Local\", error);\n\t\t}\n\t},\n};\n\n/**\n * window.sessionStorage\n * - UniApp 环境下不可用\n */\nexport const Session = {\n\t/**\n\t * 设置会话缓存\n\t * @param key 缓存的Key\n\t * @param val 缓存值\n\t * @param expire 过期时间,单位分钟\n\t * @param encrypt 是否对缓存的数据加密\n\t */\n\tset(key: string, val: any, expire?: number, encrypt?: boolean): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tencrypt ??= state.crypto;\n\t\t\t// 判断是否存在缓存过期时间\n\t\t\tif (expire) {\n\t\t\t\tif (isNaN(expire) || expire < 1) {\n\t\t\t\t\tthrow new FastError(\"有效期应为一个有效数值\");\n\t\t\t\t}\n\t\t\t\t// 设置过期时间的缓存\n\t\t\t\tconst expireData = {\n\t\t\t\t\ttime: Date.now(),\n\t\t\t\t\texpire,\n\t\t\t\t};\n\t\t\t\tconst expireJson = JSON.stringify(expireData);\n\t\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}${state.expireSuffix}`, expireJson);\n\t\t\t}\n\t\t\tlet valJson = JSON.stringify(val);\n\t\t\tif (encrypt) {\n\t\t\t\tvalJson = base64Util.toBase64(valJson);\n\t\t\t}\n\t\t\twindow.sessionStorage.setItem(`${state.prefix}${key}`, valJson);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 获取会话缓存\n\t * @param key 缓存的Key\n\t * @param decrypt 是否对缓存的数据解密\n\t * @returns {T} 传入的对象类型,默认为 string\n\t */\n\tget<T = string>(key: string, decrypt?: boolean): T {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tdecrypt ??= state.crypto;\n\t\t\t// 获取缓存 JSON 字符串\n\t\t\tlet valJson = window.sessionStorage.getItem(`${state.prefix}${key}`);\n\t\t\tif (valJson) {\n\t\t\t\t// 判断是否解密\n\t\t\t\tif (decrypt) {\n\t\t\t\t\tvalJson = base64Util.base64ToStr(valJson);\n\t\t\t\t}\n\t\t\t\t// 尝试获取缓存过期时间的 JSON 字符串\n\t\t\t\tconst expireJson = window.sessionStorage.getItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t// 判断是否存在过期时间\n\t\t\t\tif (expireJson) {\n\t\t\t\t\tconst expireData = JSON.parse(expireJson);\n\t\t\t\t\tif (Date.now() > expireData.time + expireData.expire * 60 * 1000) {\n\t\t\t\t\t\t// 过期了,删除对应的缓存数据\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\t\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(valJson) as T;\n\t\t\t\t} catch {\n\t\t\t\t\treturn valJson as T;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremove(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}`);\n\t\t\twindow.sessionStorage.removeItem(`${state.prefix}${key}${state.expireSuffix}`);\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 根据前缀移除会话缓存\n\t * @param key 缓存的Key\n\t */\n\tremoveByPrefix(key: string): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tfor (const itemKey in window.sessionStorage) {\n\t\t\t\tif (itemKey.indexOf(`${state.prefix}${key}`) !== -1) {\n\t\t\t\t\twindow.sessionStorage.removeItem(itemKey);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n\t/**\n\t * 移除全部会话缓存\n\t */\n\tclear(): void {\n\t\tif (typeof uni !== \"undefined\") {\n\t\t\tconsoleError(\"Session\", \"UniApp 环境下 [Session] 不可用。\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\twindow.sessionStorage.clear();\n\t\t} catch (error) {\n\t\t\tconsoleError(\"Session\", error);\n\t\t}\n\t},\n};\n"],"names":["state","reactive","prefix","expireSuffix","crypto","CACHE_PREFIX","computed","CACHE_EXPIRE_SUFFIX","storage","set","key","val","uni","setStorageSync","window","localStorage","setItem","get","getStorageSync","getItem","remove","removeStorageSync","removeItem","clear","clearStorageSync","keys","getStorageInfoSync","Local","expire","encrypt","isNaN","FastError","expireData","time","Date","now","expireJson","JSON","stringify","valJson","base64Util","toBase64","error","index","consoleError","decrypt","base64ToStr","parse","removeByPrefix","itemKey","indexOf","Session","sessionStorage","setPrefix","setExpireSuffix","setCrypto"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fast-china/utils",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "Fast 工具库.",
5
5
  "type": "module",
6
6
  "keywords": [