@cloudcome/utils-core 1.19.1 → 1.20.1

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.
Files changed (161) hide show
  1. package/README.md +72 -73
  2. package/dist/array.cjs +181 -125
  3. package/dist/array.cjs.map +1 -1
  4. package/dist/array.mjs +181 -133
  5. package/dist/array.mjs.map +1 -1
  6. package/dist/async.cjs +181 -171
  7. package/dist/async.cjs.map +1 -1
  8. package/dist/async.mjs +181 -174
  9. package/dist/async.mjs.map +1 -1
  10. package/dist/base64.cjs +16 -12
  11. package/dist/base64.cjs.map +1 -1
  12. package/dist/base64.mjs +17 -14
  13. package/dist/base64.mjs.map +1 -1
  14. package/dist/cache.cjs +79 -67
  15. package/dist/cache.cjs.map +1 -1
  16. package/dist/cache.d.ts +3 -3
  17. package/dist/cache.mjs +80 -71
  18. package/dist/cache.mjs.map +1 -1
  19. package/dist/color.cjs +478 -167
  20. package/dist/color.cjs.map +1 -1
  21. package/dist/color.d.ts +3 -3
  22. package/dist/color.mjs +480 -197
  23. package/dist/color.mjs.map +1 -1
  24. package/dist/crypto.cjs +474 -687
  25. package/dist/crypto.cjs.map +1 -1
  26. package/dist/crypto.mjs +476 -693
  27. package/dist/crypto.mjs.map +1 -1
  28. package/dist/date.cjs +972 -161
  29. package/dist/date.cjs.map +1 -1
  30. package/dist/date.d.ts +2 -2
  31. package/dist/date.mjs +962 -191
  32. package/dist/date.mjs.map +1 -1
  33. package/dist/dict.cjs +90 -52
  34. package/dist/dict.cjs.map +1 -1
  35. package/dist/dict.d.ts +1 -1
  36. package/dist/dict.mjs +91 -54
  37. package/dist/dict.mjs.map +1 -1
  38. package/dist/easing.cjs +104 -103
  39. package/dist/easing.cjs.map +1 -1
  40. package/dist/easing.mjs +105 -133
  41. package/dist/easing.mjs.map +1 -1
  42. package/dist/emitter.cjs +101 -96
  43. package/dist/emitter.cjs.map +1 -1
  44. package/dist/emitter.mjs +101 -97
  45. package/dist/emitter.mjs.map +1 -1
  46. package/dist/env.cjs +43 -9
  47. package/dist/env.cjs.map +1 -1
  48. package/dist/env.d.ts +1 -1
  49. package/dist/env.mjs +43 -15
  50. package/dist/env.mjs.map +1 -1
  51. package/dist/error.cjs +26 -5
  52. package/dist/error.cjs.map +1 -1
  53. package/dist/error.mjs +26 -7
  54. package/dist/error.mjs.map +1 -1
  55. package/dist/exception.cjs +38 -20
  56. package/dist/exception.cjs.map +1 -1
  57. package/dist/exception.d.ts +5 -5
  58. package/dist/exception.mjs +38 -21
  59. package/dist/exception.mjs.map +1 -1
  60. package/dist/function.cjs +128 -68
  61. package/dist/function.cjs.map +1 -1
  62. package/dist/function.mjs +128 -72
  63. package/dist/function.mjs.map +1 -1
  64. package/dist/index.cjs +8 -3
  65. package/dist/index.cjs.map +1 -1
  66. package/dist/index.mjs +9 -5
  67. package/dist/index.mjs.map +1 -1
  68. package/dist/number.cjs +10 -14
  69. package/dist/number.mjs +2 -15
  70. package/dist/object/get-set.d.ts +2 -2
  71. package/dist/object/merge.d.ts +2 -2
  72. package/dist/object.cjs +369 -106
  73. package/dist/object.cjs.map +1 -1
  74. package/dist/object.mjs +366 -115
  75. package/dist/object.mjs.map +1 -1
  76. package/dist/path.cjs +144 -55
  77. package/dist/path.cjs.map +1 -1
  78. package/dist/path.mjs +144 -62
  79. package/dist/path.mjs.map +1 -1
  80. package/dist/promise.cjs +84 -43
  81. package/dist/promise.cjs.map +1 -1
  82. package/dist/promise.mjs +85 -50
  83. package/dist/promise.mjs.map +1 -1
  84. package/dist/qs.cjs +63 -39
  85. package/dist/qs.cjs.map +1 -1
  86. package/dist/qs.mjs +64 -42
  87. package/dist/qs.mjs.map +1 -1
  88. package/dist/regexp.cjs +118 -35
  89. package/dist/regexp.cjs.map +1 -1
  90. package/dist/regexp.mjs +119 -46
  91. package/dist/regexp.mjs.map +1 -1
  92. package/dist/string.cjs +12 -15
  93. package/dist/string.mjs +2 -16
  94. package/dist/string2.cjs +378 -142
  95. package/dist/string2.cjs.map +1 -1
  96. package/dist/string2.mjs +259 -143
  97. package/dist/string2.mjs.map +1 -1
  98. package/dist/time.cjs +136 -59
  99. package/dist/time.cjs.map +1 -1
  100. package/dist/time.mjs +136 -65
  101. package/dist/time.mjs.map +1 -1
  102. package/dist/timer.cjs +122 -112
  103. package/dist/timer.cjs.map +1 -1
  104. package/dist/timer.mjs +123 -115
  105. package/dist/timer.mjs.map +1 -1
  106. package/dist/tree.cjs +207 -112
  107. package/dist/tree.cjs.map +1 -1
  108. package/dist/tree.mjs +207 -116
  109. package/dist/tree.mjs.map +1 -1
  110. package/dist/try/curry.d.ts +1 -1
  111. package/dist/try.cjs +36 -37
  112. package/dist/try.cjs.map +1 -1
  113. package/dist/try.mjs +35 -37
  114. package/dist/try.mjs.map +1 -1
  115. package/dist/type.cjs +126 -24
  116. package/dist/type.cjs.map +1 -1
  117. package/dist/type.d.ts +2 -2
  118. package/dist/type.mjs +128 -45
  119. package/dist/type.mjs.map +1 -1
  120. package/dist/types.cjs +0 -2
  121. package/dist/types.d.ts +1 -1
  122. package/dist/types.mjs +0 -2
  123. package/dist/unique.cjs +41 -38
  124. package/dist/unique.cjs.map +1 -1
  125. package/dist/unique.mjs +42 -41
  126. package/dist/unique.mjs.map +1 -1
  127. package/dist/url.cjs +39 -30
  128. package/dist/url.cjs.map +1 -1
  129. package/dist/url.mjs +40 -33
  130. package/dist/url.mjs.map +1 -1
  131. package/dist/version.cjs +51 -33
  132. package/dist/version.cjs.map +1 -1
  133. package/dist/version.mjs +51 -35
  134. package/dist/version.mjs.map +1 -1
  135. package/package.json +109 -110
  136. package/dist/const.cjs +0 -14
  137. package/dist/const.cjs.map +0 -1
  138. package/dist/const.mjs +0 -15
  139. package/dist/const.mjs.map +0 -1
  140. package/dist/core.cjs +0 -362
  141. package/dist/core.cjs.map +0 -1
  142. package/dist/core.mjs +0 -363
  143. package/dist/core.mjs.map +0 -1
  144. package/dist/crypto/md5.d.mts +0 -1
  145. package/dist/crypto/sha1.d.mts +0 -1
  146. package/dist/crypto/sha256.d.mts +0 -1
  147. package/dist/crypto/sha512.d.mts +0 -1
  148. package/dist/each.cjs +0 -18
  149. package/dist/each.cjs.map +0 -1
  150. package/dist/each.mjs +0 -19
  151. package/dist/each.mjs.map +0 -1
  152. package/dist/merge.cjs +0 -87
  153. package/dist/merge.cjs.map +0 -1
  154. package/dist/merge.mjs +0 -88
  155. package/dist/merge.mjs.map +0 -1
  156. package/dist/number.cjs.map +0 -1
  157. package/dist/number.mjs.map +0 -1
  158. package/dist/string.cjs.map +0 -1
  159. package/dist/string.mjs.map +0 -1
  160. package/dist/types.cjs.map +0 -1
  161. package/dist/types.mjs.map +0 -1
package/dist/cache.cjs CHANGED
@@ -1,73 +1,85 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const core = require("./core.cjs");
4
- class AbstractCache {
5
- isExpired(cached) {
6
- return cached.expiredAt > 0 && Date.now() > cached.expiredAt;
7
- }
8
- normalizeCached(id, data, options) {
9
- const { expiredAt = 0, maxAge = 0 } = options || {};
10
- const now = Date.now();
11
- return {
12
- id,
13
- data,
14
- createdAt: now,
15
- expiredAt: expiredAt ? core.dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0
16
- };
17
- }
18
- /**
19
- * 获取缓存项
20
- * @param id 缓存项的唯一标识
21
- * @returns 返回缓存项或 null
22
- */
23
- get(id) {
24
- return null;
25
- }
26
- /**
27
- * 设置缓存项
28
- * @param id 缓存项的唯一标识
29
- * @param data 要缓存的数据
30
- * @param options 缓存选项
31
- */
32
- set(id, data, options) {
33
- }
34
- /**
35
- * 删除缓存项
36
- * @param id 缓存项的唯一标识
37
- */
38
- del(id) {
39
- }
40
- /**
41
- * 清空缓存
42
- */
43
- clear() {
44
- }
45
- }
46
- class MemoryCache extends AbstractCache {
47
- cache = /* @__PURE__ */ new Map();
48
- get(id) {
49
- const cached = this.cache.get(id);
50
- if (!cached) return null;
51
- if (this.isExpired(cached)) {
52
- this.del(id);
53
- return null;
54
- }
55
- return cached;
56
- }
57
- set(id, data, options) {
58
- this.cache.set(id, this.normalizeCached(id, data, options));
59
- }
60
- del(id) {
61
- this.cache.delete(id);
62
- }
63
- clear() {
64
- this.cache.clear();
65
- }
66
- }
2
+ const require_date = require("./date.cjs");
3
+ //#region src/cache.ts
4
+ /**
5
+ * 缓存抽象类
6
+ * @template T 缓存数据的类型
7
+ */
8
+ var AbstractCache = class {
9
+ isExpired(cached) {
10
+ return cached.expiredAt > 0 && Date.now() > cached.expiredAt;
11
+ }
12
+ normalizeCached(id, data, options) {
13
+ const { expiredAt = 0, maxAge = 0 } = options || {};
14
+ const now = Date.now();
15
+ return {
16
+ id,
17
+ data,
18
+ createdAt: now,
19
+ expiredAt: expiredAt ? require_date.dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0
20
+ };
21
+ }
22
+ /**
23
+ * 获取缓存项
24
+ * @param id 缓存项的唯一标识
25
+ * @returns 返回缓存项或 null
26
+ */
27
+ get(_id) {
28
+ return null;
29
+ }
30
+ /**
31
+ * 设置缓存项
32
+ * @param id 缓存项的唯一标识
33
+ * @param data 要缓存的数据
34
+ * @param options 缓存选项
35
+ */
36
+ set(_id, _data, _options) {}
37
+ /**
38
+ * 删除缓存项
39
+ * @param id 缓存项的唯一标识
40
+ */
41
+ del(_id) {}
42
+ /**
43
+ * 清空缓存
44
+ */
45
+ clear() {}
46
+ };
47
+ /**
48
+ * 内存缓存实现类
49
+ * @template T 缓存数据的类型
50
+ */
51
+ var MemoryCache = class extends AbstractCache {
52
+ cache = /* @__PURE__ */ new Map();
53
+ get(id) {
54
+ const cached = this.cache.get(id);
55
+ if (!cached) return null;
56
+ if (this.isExpired(cached)) {
57
+ this.del(id);
58
+ return null;
59
+ }
60
+ return cached;
61
+ }
62
+ set(id, data, options) {
63
+ this.cache.set(id, this.normalizeCached(id, data, options));
64
+ }
65
+ del(id) {
66
+ this.cache.delete(id);
67
+ }
68
+ clear() {
69
+ this.cache.clear();
70
+ }
71
+ };
72
+ /**
73
+ * 创建一个新的内存缓存实例
74
+ * @template T 缓存数据的类型
75
+ * @returns 返回一个新的 MemoryCache 实例
76
+ */
67
77
  function createMemCache() {
68
- return new MemoryCache();
78
+ return new MemoryCache();
69
79
  }
80
+ //#endregion
70
81
  exports.AbstractCache = AbstractCache;
71
82
  exports.MemoryCache = MemoryCache;
72
83
  exports.createMemCache = createMemCache;
73
- //# sourceMappingURL=cache.cjs.map
84
+
85
+ //# sourceMappingURL=cache.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.cjs","sources":["../src/cache.ts"],"sourcesContent":["import { type DateValue, dateParse } from './date';\nimport type { MaybePromise } from './types';\n\n/**\n * 缓存选项\n */\nexport type CacheOptions = {\n /**\n * 缓存的最大时长(毫秒),为 0 时表示永久缓存\n */\n maxAge?: number;\n\n /**\n * 缓存的过期时间(时间戳、日期字符串、日期对象等)\n * 优先级比 maxAge 更高\n */\n expiredAt?: DateValue;\n};\n\n/**\n * 缓存项\n * @template T 缓存数据的类型\n */\nexport type Cached<T> = {\n /**\n * 缓存项的唯一标识\n */\n id: string;\n /**\n * 缓存的数据\n */\n data: T;\n /**\n * 缓存项的创建时间(时间戳)\n */\n createdAt: number;\n /**\n * 缓存项的过期时间(时间戳)\n */\n expiredAt: number;\n};\n\nexport type Cache<T> = {\n get(id: string): MaybePromise<Cached<T> | null>;\n\n set(id: string, data: T, options?: CacheOptions): MaybePromise<void>;\n\n del(id: string): MaybePromise<void>;\n};\n\n/**\n * 缓存抽象类\n * @template T 缓存数据的类型\n */\nexport class AbstractCache<T> implements Cache<T> {\n isExpired(cached: Cached<T>) {\n return cached.expiredAt > 0 && Date.now() > cached.expiredAt;\n }\n\n normalizeCached(id: string, data: T, options?: CacheOptions): Cached<T> {\n const { expiredAt = 0, maxAge = 0 } = options || {};\n const now = Date.now();\n return {\n id,\n data,\n createdAt: now,\n expiredAt: expiredAt ? dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0,\n };\n }\n\n /**\n * 获取缓存项\n * @param id 缓存项的唯一标识\n * @returns 返回缓存项或 null\n */\n get(id: string): MaybePromise<Cached<T> | null> {\n return null;\n }\n\n /**\n * 设置缓存项\n * @param id 缓存项的唯一标识\n * @param data 要缓存的数据\n * @param options 缓存选项\n */\n set(id: string, data: T, options?: CacheOptions): MaybePromise<void> {\n //\n }\n\n /**\n * 删除缓存项\n * @param id 缓存项的唯一标识\n */\n del(id: string): MaybePromise<void> {\n //\n }\n\n /**\n * 清空缓存\n */\n clear(): MaybePromise<void> {\n //\n }\n}\n\n/**\n * 内存缓存实现类\n * @template T 缓存数据的类型\n */\nexport class MemoryCache<T> extends AbstractCache<T> {\n private cache: Map<string, Cached<T>> = new Map();\n\n get(id: string) {\n const cached = this.cache.get(id);\n\n if (!cached) return null;\n\n if (this.isExpired(cached)) {\n this.del(id);\n return null;\n }\n\n return cached;\n }\n\n set(id: string, data: T, options?: CacheOptions) {\n this.cache.set(id, this.normalizeCached(id, data, options));\n }\n\n del(id: string) {\n this.cache.delete(id);\n }\n\n clear() {\n this.cache.clear();\n }\n}\n\n/**\n * 创建一个新的内存缓存实例\n * @template T 缓存数据的类型\n * @returns 返回一个新的 MemoryCache 实例\n */\nexport function createMemCache<T>() {\n return new MemoryCache<T>();\n}\n"],"names":["dateParse"],"mappings":";;;AAsDO,MAAM,cAAqC;AAAA,EAChD,UAAU,QAAmB;AAC3B,WAAO,OAAO,YAAY,KAAK,KAAK,IAAA,IAAQ,OAAO;AAAA,EAAA;AAAA,EAGrD,gBAAgB,IAAY,MAAS,SAAmC;AACtE,UAAM,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,WAAW,CAAC;AAC5C,UAAA,MAAM,KAAK,IAAI;AACd,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,WAAW,YAAYA,KAAA,UAAU,SAAS,EAAE,QAAY,IAAA,SAAS,IAAI,MAAM,SAAS;AAAA,IACtF;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQF,IAAI,IAA4C;AACvC,WAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAST,IAAI,IAAY,MAAS,SAA4C;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrE,IAAI,IAAgC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAOpC,QAA4B;AAAA,EAAA;AAG9B;AAMO,MAAM,oBAAuB,cAAiB;AAAA,EAC3C,4BAAoC,IAAI;AAAA,EAEhD,IAAI,IAAY;AACd,UAAM,SAAS,KAAK,MAAM,IAAI,EAAE;AAE5B,QAAA,CAAC,OAAe,QAAA;AAEhB,QAAA,KAAK,UAAU,MAAM,GAAG;AAC1B,WAAK,IAAI,EAAE;AACJ,aAAA;AAAA,IAAA;AAGF,WAAA;AAAA,EAAA;AAAA,EAGT,IAAI,IAAY,MAAS,SAAwB;AAC1C,SAAA,MAAM,IAAI,IAAI,KAAK,gBAAgB,IAAI,MAAM,OAAO,CAAC;AAAA,EAAA;AAAA,EAG5D,IAAI,IAAY;AACT,SAAA,MAAM,OAAO,EAAE;AAAA,EAAA;AAAA,EAGtB,QAAQ;AACN,SAAK,MAAM,MAAM;AAAA,EAAA;AAErB;AAOO,SAAS,iBAAoB;AAClC,SAAO,IAAI,YAAe;AAC5B;;;;"}
1
+ {"version":3,"file":"cache.cjs","names":[],"sources":["../src/cache.ts"],"sourcesContent":["import { type DateValue, dateParse } from './date';\nimport type { MaybePromise } from './types';\n\n/**\n * 缓存选项\n */\nexport type CacheOptions = {\n /**\n * 缓存的最大时长(毫秒),为 0 时表示永久缓存\n */\n maxAge?: number;\n\n /**\n * 缓存的过期时间(时间戳、日期字符串、日期对象等)\n * 优先级比 maxAge 更高\n */\n expiredAt?: DateValue;\n};\n\n/**\n * 缓存项\n * @template T 缓存数据的类型\n */\nexport type Cached<T> = {\n /**\n * 缓存项的唯一标识\n */\n id: string;\n /**\n * 缓存的数据\n */\n data: T;\n /**\n * 缓存项的创建时间(时间戳)\n */\n createdAt: number;\n /**\n * 缓存项的过期时间(时间戳)\n */\n expiredAt: number;\n};\n\nexport type Cache<T> = {\n get(id: string): MaybePromise<Cached<T> | null>;\n\n set(id: string, data: T, options?: CacheOptions): MaybePromise<void>;\n\n del(id: string): MaybePromise<void>;\n};\n\n/**\n * 缓存抽象类\n * @template T 缓存数据的类型\n */\nexport class AbstractCache<T> implements Cache<T> {\n isExpired(cached: Cached<T>) {\n return cached.expiredAt > 0 && Date.now() > cached.expiredAt;\n }\n\n normalizeCached(id: string, data: T, options?: CacheOptions): Cached<T> {\n const { expiredAt = 0, maxAge = 0 } = options || {};\n const now = Date.now();\n return {\n id,\n data,\n createdAt: now,\n expiredAt: expiredAt ? dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0,\n };\n }\n\n /**\n * 获取缓存项\n * @param id 缓存项的唯一标识\n * @returns 返回缓存项或 null\n */\n get(_id: string): MaybePromise<Cached<T> | null> {\n return null;\n }\n\n /**\n * 设置缓存项\n * @param id 缓存项的唯一标识\n * @param data 要缓存的数据\n * @param options 缓存选项\n */\n set(_id: string, _data: T, _options?: CacheOptions): MaybePromise<void> {\n //\n }\n\n /**\n * 删除缓存项\n * @param id 缓存项的唯一标识\n */\n del(_id: string): MaybePromise<void> {\n //\n }\n\n /**\n * 清空缓存\n */\n clear(): MaybePromise<void> {\n //\n }\n}\n\n/**\n * 内存缓存实现类\n * @template T 缓存数据的类型\n */\nexport class MemoryCache<T> extends AbstractCache<T> {\n private cache: Map<string, Cached<T>> = new Map();\n\n get(id: string) {\n const cached = this.cache.get(id);\n\n if (!cached) return null;\n\n if (this.isExpired(cached)) {\n this.del(id);\n return null;\n }\n\n return cached;\n }\n\n set(id: string, data: T, options?: CacheOptions) {\n this.cache.set(id, this.normalizeCached(id, data, options));\n }\n\n del(id: string) {\n this.cache.delete(id);\n }\n\n clear() {\n this.cache.clear();\n }\n}\n\n/**\n * 创建一个新的内存缓存实例\n * @template T 缓存数据的类型\n * @returns 返回一个新的 MemoryCache 实例\n */\nexport function createMemCache<T>() {\n return new MemoryCache<T>();\n}\n"],"mappings":";;;;;;;AAsDA,IAAa,gBAAb,MAAkD;CAChD,UAAU,QAAmB;EAC3B,OAAO,OAAO,YAAY,KAAK,KAAK,KAAK,GAAG,OAAO;;CAGrD,gBAAgB,IAAY,MAAS,SAAmC;EACtE,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,WAAW,EAAE;EACnD,MAAM,MAAM,KAAK,KAAK;EACtB,OAAO;GACL;GACA;GACA,WAAW;GACX,WAAW,YAAY,aAAA,UAAU,UAAU,CAAC,SAAS,GAAG,SAAS,IAAI,MAAM,SAAS;GACrF;;;;;;;CAQH,IAAI,KAA6C;EAC/C,OAAO;;;;;;;;CAST,IAAI,KAAa,OAAU,UAA6C;;;;;CAQxE,IAAI,KAAiC;;;;CAOrC,QAA4B;;;;;;AAS9B,IAAa,cAAb,cAAoC,cAAiB;CACnD,wBAAwC,IAAI,KAAK;CAEjD,IAAI,IAAY;EACd,MAAM,SAAS,KAAK,MAAM,IAAI,GAAG;EAEjC,IAAI,CAAC,QAAQ,OAAO;EAEpB,IAAI,KAAK,UAAU,OAAO,EAAE;GAC1B,KAAK,IAAI,GAAG;GACZ,OAAO;;EAGT,OAAO;;CAGT,IAAI,IAAY,MAAS,SAAwB;EAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,gBAAgB,IAAI,MAAM,QAAQ,CAAC;;CAG7D,IAAI,IAAY;EACd,KAAK,MAAM,OAAO,GAAG;;CAGvB,QAAQ;EACN,KAAK,MAAM,OAAO;;;;;;;;AAStB,SAAgB,iBAAoB;CAClC,OAAO,IAAI,aAAgB"}
package/dist/cache.d.ts CHANGED
@@ -53,19 +53,19 @@ export declare class AbstractCache<T> implements Cache<T> {
53
53
  * @param id 缓存项的唯一标识
54
54
  * @returns 返回缓存项或 null
55
55
  */
56
- get(id: string): MaybePromise<Cached<T> | null>;
56
+ get(_id: string): MaybePromise<Cached<T> | null>;
57
57
  /**
58
58
  * 设置缓存项
59
59
  * @param id 缓存项的唯一标识
60
60
  * @param data 要缓存的数据
61
61
  * @param options 缓存选项
62
62
  */
63
- set(id: string, data: T, options?: CacheOptions): MaybePromise<void>;
63
+ set(_id: string, _data: T, _options?: CacheOptions): MaybePromise<void>;
64
64
  /**
65
65
  * 删除缓存项
66
66
  * @param id 缓存项的唯一标识
67
67
  */
68
- del(id: string): MaybePromise<void>;
68
+ del(_id: string): MaybePromise<void>;
69
69
  /**
70
70
  * 清空缓存
71
71
  */
package/dist/cache.mjs CHANGED
@@ -1,73 +1,82 @@
1
- import { d as dateParse } from "./core.mjs";
2
- class AbstractCache {
3
- isExpired(cached) {
4
- return cached.expiredAt > 0 && Date.now() > cached.expiredAt;
5
- }
6
- normalizeCached(id, data, options) {
7
- const { expiredAt = 0, maxAge = 0 } = options || {};
8
- const now = Date.now();
9
- return {
10
- id,
11
- data,
12
- createdAt: now,
13
- expiredAt: expiredAt ? dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0
14
- };
15
- }
16
- /**
17
- * 获取缓存项
18
- * @param id 缓存项的唯一标识
19
- * @returns 返回缓存项或 null
20
- */
21
- get(id) {
22
- return null;
23
- }
24
- /**
25
- * 设置缓存项
26
- * @param id 缓存项的唯一标识
27
- * @param data 要缓存的数据
28
- * @param options 缓存选项
29
- */
30
- set(id, data, options) {
31
- }
32
- /**
33
- * 删除缓存项
34
- * @param id 缓存项的唯一标识
35
- */
36
- del(id) {
37
- }
38
- /**
39
- * 清空缓存
40
- */
41
- clear() {
42
- }
43
- }
44
- class MemoryCache extends AbstractCache {
45
- cache = /* @__PURE__ */ new Map();
46
- get(id) {
47
- const cached = this.cache.get(id);
48
- if (!cached) return null;
49
- if (this.isExpired(cached)) {
50
- this.del(id);
51
- return null;
52
- }
53
- return cached;
54
- }
55
- set(id, data, options) {
56
- this.cache.set(id, this.normalizeCached(id, data, options));
57
- }
58
- del(id) {
59
- this.cache.delete(id);
60
- }
61
- clear() {
62
- this.cache.clear();
63
- }
64
- }
1
+ import { dateParse } from "./date.mjs";
2
+ //#region src/cache.ts
3
+ /**
4
+ * 缓存抽象类
5
+ * @template T 缓存数据的类型
6
+ */
7
+ var AbstractCache = class {
8
+ isExpired(cached) {
9
+ return cached.expiredAt > 0 && Date.now() > cached.expiredAt;
10
+ }
11
+ normalizeCached(id, data, options) {
12
+ const { expiredAt = 0, maxAge = 0 } = options || {};
13
+ const now = Date.now();
14
+ return {
15
+ id,
16
+ data,
17
+ createdAt: now,
18
+ expiredAt: expiredAt ? dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0
19
+ };
20
+ }
21
+ /**
22
+ * 获取缓存项
23
+ * @param id 缓存项的唯一标识
24
+ * @returns 返回缓存项或 null
25
+ */
26
+ get(_id) {
27
+ return null;
28
+ }
29
+ /**
30
+ * 设置缓存项
31
+ * @param id 缓存项的唯一标识
32
+ * @param data 要缓存的数据
33
+ * @param options 缓存选项
34
+ */
35
+ set(_id, _data, _options) {}
36
+ /**
37
+ * 删除缓存项
38
+ * @param id 缓存项的唯一标识
39
+ */
40
+ del(_id) {}
41
+ /**
42
+ * 清空缓存
43
+ */
44
+ clear() {}
45
+ };
46
+ /**
47
+ * 内存缓存实现类
48
+ * @template T 缓存数据的类型
49
+ */
50
+ var MemoryCache = class extends AbstractCache {
51
+ cache = /* @__PURE__ */ new Map();
52
+ get(id) {
53
+ const cached = this.cache.get(id);
54
+ if (!cached) return null;
55
+ if (this.isExpired(cached)) {
56
+ this.del(id);
57
+ return null;
58
+ }
59
+ return cached;
60
+ }
61
+ set(id, data, options) {
62
+ this.cache.set(id, this.normalizeCached(id, data, options));
63
+ }
64
+ del(id) {
65
+ this.cache.delete(id);
66
+ }
67
+ clear() {
68
+ this.cache.clear();
69
+ }
70
+ };
71
+ /**
72
+ * 创建一个新的内存缓存实例
73
+ * @template T 缓存数据的类型
74
+ * @returns 返回一个新的 MemoryCache 实例
75
+ */
65
76
  function createMemCache() {
66
- return new MemoryCache();
77
+ return new MemoryCache();
67
78
  }
68
- export {
69
- AbstractCache,
70
- MemoryCache,
71
- createMemCache
72
- };
73
- //# sourceMappingURL=cache.mjs.map
79
+ //#endregion
80
+ export { AbstractCache, MemoryCache, createMemCache };
81
+
82
+ //# sourceMappingURL=cache.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.mjs","sources":["../src/cache.ts"],"sourcesContent":["import { type DateValue, dateParse } from './date';\nimport type { MaybePromise } from './types';\n\n/**\n * 缓存选项\n */\nexport type CacheOptions = {\n /**\n * 缓存的最大时长(毫秒),为 0 时表示永久缓存\n */\n maxAge?: number;\n\n /**\n * 缓存的过期时间(时间戳、日期字符串、日期对象等)\n * 优先级比 maxAge 更高\n */\n expiredAt?: DateValue;\n};\n\n/**\n * 缓存项\n * @template T 缓存数据的类型\n */\nexport type Cached<T> = {\n /**\n * 缓存项的唯一标识\n */\n id: string;\n /**\n * 缓存的数据\n */\n data: T;\n /**\n * 缓存项的创建时间(时间戳)\n */\n createdAt: number;\n /**\n * 缓存项的过期时间(时间戳)\n */\n expiredAt: number;\n};\n\nexport type Cache<T> = {\n get(id: string): MaybePromise<Cached<T> | null>;\n\n set(id: string, data: T, options?: CacheOptions): MaybePromise<void>;\n\n del(id: string): MaybePromise<void>;\n};\n\n/**\n * 缓存抽象类\n * @template T 缓存数据的类型\n */\nexport class AbstractCache<T> implements Cache<T> {\n isExpired(cached: Cached<T>) {\n return cached.expiredAt > 0 && Date.now() > cached.expiredAt;\n }\n\n normalizeCached(id: string, data: T, options?: CacheOptions): Cached<T> {\n const { expiredAt = 0, maxAge = 0 } = options || {};\n const now = Date.now();\n return {\n id,\n data,\n createdAt: now,\n expiredAt: expiredAt ? dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0,\n };\n }\n\n /**\n * 获取缓存项\n * @param id 缓存项的唯一标识\n * @returns 返回缓存项或 null\n */\n get(id: string): MaybePromise<Cached<T> | null> {\n return null;\n }\n\n /**\n * 设置缓存项\n * @param id 缓存项的唯一标识\n * @param data 要缓存的数据\n * @param options 缓存选项\n */\n set(id: string, data: T, options?: CacheOptions): MaybePromise<void> {\n //\n }\n\n /**\n * 删除缓存项\n * @param id 缓存项的唯一标识\n */\n del(id: string): MaybePromise<void> {\n //\n }\n\n /**\n * 清空缓存\n */\n clear(): MaybePromise<void> {\n //\n }\n}\n\n/**\n * 内存缓存实现类\n * @template T 缓存数据的类型\n */\nexport class MemoryCache<T> extends AbstractCache<T> {\n private cache: Map<string, Cached<T>> = new Map();\n\n get(id: string) {\n const cached = this.cache.get(id);\n\n if (!cached) return null;\n\n if (this.isExpired(cached)) {\n this.del(id);\n return null;\n }\n\n return cached;\n }\n\n set(id: string, data: T, options?: CacheOptions) {\n this.cache.set(id, this.normalizeCached(id, data, options));\n }\n\n del(id: string) {\n this.cache.delete(id);\n }\n\n clear() {\n this.cache.clear();\n }\n}\n\n/**\n * 创建一个新的内存缓存实例\n * @template T 缓存数据的类型\n * @returns 返回一个新的 MemoryCache 实例\n */\nexport function createMemCache<T>() {\n return new MemoryCache<T>();\n}\n"],"names":[],"mappings":";AAsDO,MAAM,cAAqC;AAAA,EAChD,UAAU,QAAmB;AAC3B,WAAO,OAAO,YAAY,KAAK,KAAK,IAAA,IAAQ,OAAO;AAAA,EAAA;AAAA,EAGrD,gBAAgB,IAAY,MAAS,SAAmC;AACtE,UAAM,EAAE,YAAY,GAAG,SAAS,EAAE,IAAI,WAAW,CAAC;AAC5C,UAAA,MAAM,KAAK,IAAI;AACd,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,WAAW,YAAY,UAAU,SAAS,EAAE,QAAY,IAAA,SAAS,IAAI,MAAM,SAAS;AAAA,IACtF;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQF,IAAI,IAA4C;AACvC,WAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAST,IAAI,IAAY,MAAS,SAA4C;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrE,IAAI,IAAgC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAOpC,QAA4B;AAAA,EAAA;AAG9B;AAMO,MAAM,oBAAuB,cAAiB;AAAA,EAC3C,4BAAoC,IAAI;AAAA,EAEhD,IAAI,IAAY;AACd,UAAM,SAAS,KAAK,MAAM,IAAI,EAAE;AAE5B,QAAA,CAAC,OAAe,QAAA;AAEhB,QAAA,KAAK,UAAU,MAAM,GAAG;AAC1B,WAAK,IAAI,EAAE;AACJ,aAAA;AAAA,IAAA;AAGF,WAAA;AAAA,EAAA;AAAA,EAGT,IAAI,IAAY,MAAS,SAAwB;AAC1C,SAAA,MAAM,IAAI,IAAI,KAAK,gBAAgB,IAAI,MAAM,OAAO,CAAC;AAAA,EAAA;AAAA,EAG5D,IAAI,IAAY;AACT,SAAA,MAAM,OAAO,EAAE;AAAA,EAAA;AAAA,EAGtB,QAAQ;AACN,SAAK,MAAM,MAAM;AAAA,EAAA;AAErB;AAOO,SAAS,iBAAoB;AAClC,SAAO,IAAI,YAAe;AAC5B;"}
1
+ {"version":3,"file":"cache.mjs","names":[],"sources":["../src/cache.ts"],"sourcesContent":["import { type DateValue, dateParse } from './date';\nimport type { MaybePromise } from './types';\n\n/**\n * 缓存选项\n */\nexport type CacheOptions = {\n /**\n * 缓存的最大时长(毫秒),为 0 时表示永久缓存\n */\n maxAge?: number;\n\n /**\n * 缓存的过期时间(时间戳、日期字符串、日期对象等)\n * 优先级比 maxAge 更高\n */\n expiredAt?: DateValue;\n};\n\n/**\n * 缓存项\n * @template T 缓存数据的类型\n */\nexport type Cached<T> = {\n /**\n * 缓存项的唯一标识\n */\n id: string;\n /**\n * 缓存的数据\n */\n data: T;\n /**\n * 缓存项的创建时间(时间戳)\n */\n createdAt: number;\n /**\n * 缓存项的过期时间(时间戳)\n */\n expiredAt: number;\n};\n\nexport type Cache<T> = {\n get(id: string): MaybePromise<Cached<T> | null>;\n\n set(id: string, data: T, options?: CacheOptions): MaybePromise<void>;\n\n del(id: string): MaybePromise<void>;\n};\n\n/**\n * 缓存抽象类\n * @template T 缓存数据的类型\n */\nexport class AbstractCache<T> implements Cache<T> {\n isExpired(cached: Cached<T>) {\n return cached.expiredAt > 0 && Date.now() > cached.expiredAt;\n }\n\n normalizeCached(id: string, data: T, options?: CacheOptions): Cached<T> {\n const { expiredAt = 0, maxAge = 0 } = options || {};\n const now = Date.now();\n return {\n id,\n data,\n createdAt: now,\n expiredAt: expiredAt ? dateParse(expiredAt).getTime() : maxAge > 0 ? now + maxAge : 0,\n };\n }\n\n /**\n * 获取缓存项\n * @param id 缓存项的唯一标识\n * @returns 返回缓存项或 null\n */\n get(_id: string): MaybePromise<Cached<T> | null> {\n return null;\n }\n\n /**\n * 设置缓存项\n * @param id 缓存项的唯一标识\n * @param data 要缓存的数据\n * @param options 缓存选项\n */\n set(_id: string, _data: T, _options?: CacheOptions): MaybePromise<void> {\n //\n }\n\n /**\n * 删除缓存项\n * @param id 缓存项的唯一标识\n */\n del(_id: string): MaybePromise<void> {\n //\n }\n\n /**\n * 清空缓存\n */\n clear(): MaybePromise<void> {\n //\n }\n}\n\n/**\n * 内存缓存实现类\n * @template T 缓存数据的类型\n */\nexport class MemoryCache<T> extends AbstractCache<T> {\n private cache: Map<string, Cached<T>> = new Map();\n\n get(id: string) {\n const cached = this.cache.get(id);\n\n if (!cached) return null;\n\n if (this.isExpired(cached)) {\n this.del(id);\n return null;\n }\n\n return cached;\n }\n\n set(id: string, data: T, options?: CacheOptions) {\n this.cache.set(id, this.normalizeCached(id, data, options));\n }\n\n del(id: string) {\n this.cache.delete(id);\n }\n\n clear() {\n this.cache.clear();\n }\n}\n\n/**\n * 创建一个新的内存缓存实例\n * @template T 缓存数据的类型\n * @returns 返回一个新的 MemoryCache 实例\n */\nexport function createMemCache<T>() {\n return new MemoryCache<T>();\n}\n"],"mappings":";;;;;;AAsDA,IAAa,gBAAb,MAAkD;CAChD,UAAU,QAAmB;EAC3B,OAAO,OAAO,YAAY,KAAK,KAAK,KAAK,GAAG,OAAO;;CAGrD,gBAAgB,IAAY,MAAS,SAAmC;EACtE,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,WAAW,EAAE;EACnD,MAAM,MAAM,KAAK,KAAK;EACtB,OAAO;GACL;GACA;GACA,WAAW;GACX,WAAW,YAAY,UAAU,UAAU,CAAC,SAAS,GAAG,SAAS,IAAI,MAAM,SAAS;GACrF;;;;;;;CAQH,IAAI,KAA6C;EAC/C,OAAO;;;;;;;;CAST,IAAI,KAAa,OAAU,UAA6C;;;;;CAQxE,IAAI,KAAiC;;;;CAOrC,QAA4B;;;;;;AAS9B,IAAa,cAAb,cAAoC,cAAiB;CACnD,wBAAwC,IAAI,KAAK;CAEjD,IAAI,IAAY;EACd,MAAM,SAAS,KAAK,MAAM,IAAI,GAAG;EAEjC,IAAI,CAAC,QAAQ,OAAO;EAEpB,IAAI,KAAK,UAAU,OAAO,EAAE;GAC1B,KAAK,IAAI,GAAG;GACZ,OAAO;;EAGT,OAAO;;CAGT,IAAI,IAAY,MAAS,SAAwB;EAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,gBAAgB,IAAI,MAAM,QAAQ,CAAC;;CAG7D,IAAI,IAAY;EACd,KAAK,MAAM,OAAO,GAAG;;CAGvB,QAAQ;EACN,KAAK,MAAM,OAAO;;;;;;;;AAStB,SAAgB,iBAAoB;CAClC,OAAO,IAAI,aAAgB"}