@allahjs/utils 0.0.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 (160) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +244 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/browser/cookieUtils/index.cjs +100 -0
  5. package/dist/browser/cookieUtils/index.cjs.map +1 -0
  6. package/dist/browser/cookieUtils/index.d.ts +55 -0
  7. package/dist/browser/domUtils/index.cjs +237 -0
  8. package/dist/browser/domUtils/index.cjs.map +1 -0
  9. package/dist/browser/domUtils/index.d.ts +116 -0
  10. package/dist/browser/index.cjs +12 -0
  11. package/dist/browser/index.cjs.map +1 -0
  12. package/dist/browser/index.d.ts +3 -0
  13. package/dist/browser/urlUtils/index.cjs +262 -0
  14. package/dist/browser/urlUtils/index.cjs.map +1 -0
  15. package/dist/browser/urlUtils/index.d.ts +72 -0
  16. package/dist/core/arrayUtils/index.cjs +109 -0
  17. package/dist/core/arrayUtils/index.cjs.map +1 -0
  18. package/dist/core/arrayUtils/index.d.ts +67 -0
  19. package/dist/core/asyncUtils/index.cjs +180 -0
  20. package/dist/core/asyncUtils/index.cjs.map +1 -0
  21. package/dist/core/asyncUtils/index.d.ts +80 -0
  22. package/dist/core/colorUtils/index.cjs +38 -0
  23. package/dist/core/colorUtils/index.cjs.map +1 -0
  24. package/dist/core/colorUtils/index.d.ts +10 -0
  25. package/dist/core/cryptoUtils/index.cjs +428 -0
  26. package/dist/core/cryptoUtils/index.cjs.map +1 -0
  27. package/dist/core/cryptoUtils/index.d.ts +132 -0
  28. package/dist/core/dateUtils/index.cjs +245 -0
  29. package/dist/core/dateUtils/index.cjs.map +1 -0
  30. package/dist/core/dateUtils/index.d.ts +117 -0
  31. package/dist/core/index.cjs +34 -0
  32. package/dist/core/index.cjs.map +1 -0
  33. package/dist/core/index.d.ts +118 -0
  34. package/dist/core/numberUtils/index.cjs +126 -0
  35. package/dist/core/numberUtils/index.cjs.map +1 -0
  36. package/dist/core/numberUtils/index.d.ts +91 -0
  37. package/dist/core/objectUtils/index.cjs +249 -0
  38. package/dist/core/objectUtils/index.cjs.map +1 -0
  39. package/dist/core/objectUtils/index.d.ts +91 -0
  40. package/dist/core/pageUtils/index.cjs +74 -0
  41. package/dist/core/pageUtils/index.cjs.map +1 -0
  42. package/dist/core/pageUtils/index.d.ts +52 -0
  43. package/dist/core/stringUtils/index.cjs +163 -0
  44. package/dist/core/stringUtils/index.cjs.map +1 -0
  45. package/dist/core/stringUtils/index.d.ts +69 -0
  46. package/dist/core/validationUtils/index.cjs +154 -0
  47. package/dist/core/validationUtils/index.cjs.map +1 -0
  48. package/dist/core/validationUtils/index.d.ts +87 -0
  49. package/dist/esm/browser/cookieUtils/index.d.ts +55 -0
  50. package/dist/esm/browser/cookieUtils/index.js +96 -0
  51. package/dist/esm/browser/cookieUtils/index.js.map +1 -0
  52. package/dist/esm/browser/domUtils/index.d.ts +116 -0
  53. package/dist/esm/browser/domUtils/index.js +233 -0
  54. package/dist/esm/browser/domUtils/index.js.map +1 -0
  55. package/dist/esm/browser/index.d.ts +3 -0
  56. package/dist/esm/browser/index.js +4 -0
  57. package/dist/esm/browser/index.js.map +1 -0
  58. package/dist/esm/browser/urlUtils/index.d.ts +72 -0
  59. package/dist/esm/browser/urlUtils/index.js +248 -0
  60. package/dist/esm/browser/urlUtils/index.js.map +1 -0
  61. package/dist/esm/core/arrayUtils/index.d.ts +67 -0
  62. package/dist/esm/core/arrayUtils/index.js +105 -0
  63. package/dist/esm/core/arrayUtils/index.js.map +1 -0
  64. package/dist/esm/core/asyncUtils/index.d.ts +80 -0
  65. package/dist/esm/core/asyncUtils/index.js +175 -0
  66. package/dist/esm/core/asyncUtils/index.js.map +1 -0
  67. package/dist/esm/core/colorUtils/index.d.ts +10 -0
  68. package/dist/esm/core/colorUtils/index.js +34 -0
  69. package/dist/esm/core/colorUtils/index.js.map +1 -0
  70. package/dist/esm/core/cryptoUtils/index.d.ts +132 -0
  71. package/dist/esm/core/cryptoUtils/index.js +424 -0
  72. package/dist/esm/core/cryptoUtils/index.js.map +1 -0
  73. package/dist/esm/core/dateUtils/index.d.ts +117 -0
  74. package/dist/esm/core/dateUtils/index.js +241 -0
  75. package/dist/esm/core/dateUtils/index.js.map +1 -0
  76. package/dist/esm/core/index.d.ts +118 -0
  77. package/dist/esm/core/index.js +30 -0
  78. package/dist/esm/core/index.js.map +1 -0
  79. package/dist/esm/core/numberUtils/index.d.ts +91 -0
  80. package/dist/esm/core/numberUtils/index.js +122 -0
  81. package/dist/esm/core/numberUtils/index.js.map +1 -0
  82. package/dist/esm/core/objectUtils/index.d.ts +91 -0
  83. package/dist/esm/core/objectUtils/index.js +245 -0
  84. package/dist/esm/core/objectUtils/index.js.map +1 -0
  85. package/dist/esm/core/pageUtils/index.d.ts +52 -0
  86. package/dist/esm/core/pageUtils/index.js +66 -0
  87. package/dist/esm/core/pageUtils/index.js.map +1 -0
  88. package/dist/esm/core/stringUtils/index.d.ts +69 -0
  89. package/dist/esm/core/stringUtils/index.js +159 -0
  90. package/dist/esm/core/stringUtils/index.js.map +1 -0
  91. package/dist/esm/core/validationUtils/index.d.ts +87 -0
  92. package/dist/esm/core/validationUtils/index.js +150 -0
  93. package/dist/esm/core/validationUtils/index.js.map +1 -0
  94. package/dist/esm/index.d.ts +22 -0
  95. package/dist/esm/index.js +26 -0
  96. package/dist/esm/index.js.map +1 -0
  97. package/dist/esm/request/ReqQueue/index.js +59 -0
  98. package/dist/esm/request/ReqQueue/index.js.map +1 -0
  99. package/dist/esm/request/httpCode/index.js +49 -0
  100. package/dist/esm/request/httpCode/index.js.map +1 -0
  101. package/dist/esm/request/httpUtils/index.js +359 -0
  102. package/dist/esm/request/httpUtils/index.js.map +1 -0
  103. package/dist/esm/request/index.d.ts +15 -0
  104. package/dist/esm/request/index.js +166 -0
  105. package/dist/esm/request/index.js.map +1 -0
  106. package/dist/esm/request/typings/index.d.ts +184 -0
  107. package/dist/esm/request/uniRequest/index.js +62 -0
  108. package/dist/esm/request/uniRequest/index.js.map +1 -0
  109. package/dist/esm/types/data/index.d.ts +188 -0
  110. package/dist/esm/types/data/index.js +13 -0
  111. package/dist/esm/types/data/index.js.map +1 -0
  112. package/dist/esm/types/index.d.ts +1 -0
  113. package/dist/esm/types/index.js +2 -0
  114. package/dist/esm/types/index.js.map +1 -0
  115. package/dist/esm/uniapp/Tips/index.d.ts +295 -0
  116. package/dist/esm/uniapp/Tips/index.js +498 -0
  117. package/dist/esm/uniapp/Tips/index.js.map +1 -0
  118. package/dist/esm/uniapp/cloudUtils/index.d.ts +56 -0
  119. package/dist/esm/uniapp/cloudUtils/index.js +90 -0
  120. package/dist/esm/uniapp/cloudUtils/index.js.map +1 -0
  121. package/dist/esm/uniapp/index.d.ts +3 -0
  122. package/dist/esm/uniapp/index.js +4 -0
  123. package/dist/esm/uniapp/index.js.map +1 -0
  124. package/dist/esm/uniapp/uniUtils/index.d.ts +113 -0
  125. package/dist/esm/uniapp/uniUtils/index.js +199 -0
  126. package/dist/esm/uniapp/uniUtils/index.js.map +1 -0
  127. package/dist/index.cjs +88 -0
  128. package/dist/index.cjs.map +1 -0
  129. package/dist/index.d.ts +22 -0
  130. package/dist/request/ReqQueue/index.cjs +63 -0
  131. package/dist/request/ReqQueue/index.cjs.map +1 -0
  132. package/dist/request/httpCode/index.cjs +52 -0
  133. package/dist/request/httpCode/index.cjs.map +1 -0
  134. package/dist/request/httpUtils/index.cjs +365 -0
  135. package/dist/request/httpUtils/index.cjs.map +1 -0
  136. package/dist/request/index.cjs +170 -0
  137. package/dist/request/index.cjs.map +1 -0
  138. package/dist/request/index.d.ts +15 -0
  139. package/dist/request/typings/index.d.ts +184 -0
  140. package/dist/request/uniRequest/index.cjs +66 -0
  141. package/dist/request/uniRequest/index.cjs.map +1 -0
  142. package/dist/types/data/index.cjs +15 -0
  143. package/dist/types/data/index.cjs.map +1 -0
  144. package/dist/types/data/index.d.ts +188 -0
  145. package/dist/types/index.cjs +8 -0
  146. package/dist/types/index.cjs.map +1 -0
  147. package/dist/types/index.d.ts +1 -0
  148. package/dist/uniapp/Tips/index.cjs +521 -0
  149. package/dist/uniapp/Tips/index.cjs.map +1 -0
  150. package/dist/uniapp/Tips/index.d.ts +295 -0
  151. package/dist/uniapp/cloudUtils/index.cjs +92 -0
  152. package/dist/uniapp/cloudUtils/index.cjs.map +1 -0
  153. package/dist/uniapp/cloudUtils/index.d.ts +56 -0
  154. package/dist/uniapp/index.cjs +53 -0
  155. package/dist/uniapp/index.cjs.map +1 -0
  156. package/dist/uniapp/index.d.ts +3 -0
  157. package/dist/uniapp/uniUtils/index.cjs +213 -0
  158. package/dist/uniapp/uniUtils/index.cjs.map +1 -0
  159. package/dist/uniapp/uniUtils/index.d.ts +113 -0
  160. package/package.json +129 -0
@@ -0,0 +1,180 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * 异步工具函数
7
+ */
8
+ /**
9
+ * 异步队列类
10
+ */
11
+ class AsyncQueue {
12
+ constructor() {
13
+ this.queue = [];
14
+ this.running = false;
15
+ }
16
+ /**
17
+ * 添加任务到队列
18
+ * @param task 异步任务
19
+ * @returns Promise
20
+ */
21
+ add(task) {
22
+ return new Promise((resolve, reject) => {
23
+ this.queue.push(async () => {
24
+ try {
25
+ const result = await task();
26
+ resolve(result);
27
+ }
28
+ catch (error) {
29
+ reject(error);
30
+ }
31
+ });
32
+ this.process();
33
+ });
34
+ }
35
+ async process() {
36
+ if (this.running || this.queue.length === 0)
37
+ return;
38
+ this.running = true;
39
+ while (this.queue.length > 0) {
40
+ const task = this.queue.shift();
41
+ await task();
42
+ }
43
+ this.running = false;
44
+ }
45
+ }
46
+ /**
47
+ * 异步工具对象
48
+ */
49
+ const asyncUtils = {
50
+ /**
51
+ * 延迟执行
52
+ * @param ms 延迟毫秒数
53
+ * @returns Promise
54
+ */
55
+ delay(ms) {
56
+ return new Promise(resolve => setTimeout(resolve, ms));
57
+ },
58
+ /**
59
+ * 超时控制
60
+ * @param promise Promise对象
61
+ * @param timeout 超时时间(毫秒)
62
+ * @param timeoutMessage 超时错误信息
63
+ * @returns 带超时控制的Promise
64
+ */
65
+ withTimeout(promise, timeout, timeoutMessage = 'Operation timed out') {
66
+ return Promise.race([
67
+ promise,
68
+ new Promise((_, reject) => setTimeout(() => reject(new Error(timeoutMessage)), timeout))
69
+ ]);
70
+ },
71
+ /**
72
+ * 重试机制
73
+ * @param fn 要重试的函数
74
+ * @param maxRetries 最大重试次数
75
+ * @param delayMs 重试间隔(毫秒)
76
+ * @returns Promise
77
+ */
78
+ async retry(fn, maxRetries = 3, delayMs = 1000) {
79
+ let lastError;
80
+ for (let i = 0; i <= maxRetries; i++) {
81
+ try {
82
+ return await fn();
83
+ }
84
+ catch (error) {
85
+ lastError = error;
86
+ if (i < maxRetries) {
87
+ await this.delay(delayMs);
88
+ }
89
+ }
90
+ }
91
+ throw lastError;
92
+ },
93
+ /**
94
+ * 并发控制
95
+ * @param tasks 任务数组
96
+ * @param concurrency 并发数
97
+ * @returns Promise数组结果
98
+ */
99
+ async concurrent(tasks, concurrency = 3) {
100
+ const results = [];
101
+ const executing = [];
102
+ for (const [index, task] of tasks.entries()) {
103
+ const promise = task().then(result => {
104
+ results[index] = result;
105
+ });
106
+ executing.push(promise);
107
+ if (executing.length >= concurrency) {
108
+ await Promise.race(executing);
109
+ executing.splice(executing.findIndex(p => p === promise), 1);
110
+ }
111
+ }
112
+ await Promise.all(executing);
113
+ return results;
114
+ },
115
+ /**
116
+ * 防抖函数
117
+ * @param fn 要防抖的函数
118
+ * @param delay 延迟时间(毫秒)
119
+ * @returns 防抖后的函数
120
+ */
121
+ debounce(fn, delay) {
122
+ let timeoutId;
123
+ return (...args) => {
124
+ clearTimeout(timeoutId);
125
+ timeoutId = setTimeout(() => fn(...args), delay);
126
+ };
127
+ },
128
+ /**
129
+ * 节流函数
130
+ * @param fn 要节流的函数
131
+ * @param interval 间隔时间(毫秒)
132
+ * @returns 节流后的函数
133
+ */
134
+ throttle(fn, interval) {
135
+ let lastTime = 0;
136
+ return (...args) => {
137
+ const now = Date.now();
138
+ if (now - lastTime >= interval) {
139
+ lastTime = now;
140
+ fn(...args);
141
+ }
142
+ };
143
+ },
144
+ /**
145
+ * 创建异步队列实例
146
+ * @returns AsyncQueue实例
147
+ */
148
+ createQueue() {
149
+ return new AsyncQueue();
150
+ },
151
+ /**
152
+ * 缓存装饰器(基于Promise)
153
+ * @param fn 要缓存的异步函数
154
+ * @param keyFn 生成缓存键的函数
155
+ * @param ttl 缓存时间(毫秒),0表示永不过期
156
+ * @returns 带缓存的函数
157
+ */
158
+ memoizeAsync(fn, keyFn = (...args) => JSON.stringify(args), ttl = 0) {
159
+ const cache = new Map();
160
+ return ((...args) => {
161
+ const key = keyFn(...args);
162
+ const cached = cache.get(key);
163
+ if (cached && (ttl === 0 || Date.now() < cached.expiry)) {
164
+ return Promise.resolve(cached.value);
165
+ }
166
+ const promise = fn(...args);
167
+ promise.then(result => {
168
+ cache.set(key, {
169
+ value: result,
170
+ expiry: ttl > 0 ? Date.now() + ttl : Infinity
171
+ });
172
+ });
173
+ return promise;
174
+ });
175
+ }
176
+ };
177
+
178
+ exports.AsyncQueue = AsyncQueue;
179
+ exports.default = asyncUtils;
180
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/core/asyncUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * 异步工具函数
3
+ */
4
+ /**
5
+ * 异步队列类
6
+ */
7
+ declare class AsyncQueue {
8
+ private queue;
9
+ private running;
10
+ /**
11
+ * 添加任务到队列
12
+ * @param task 异步任务
13
+ * @returns Promise
14
+ */
15
+ add<T>(task: () => Promise<T>): Promise<T>;
16
+ private process;
17
+ }
18
+ /**
19
+ * 异步工具对象
20
+ */
21
+ declare const asyncUtils: {
22
+ /**
23
+ * 延迟执行
24
+ * @param ms 延迟毫秒数
25
+ * @returns Promise
26
+ */
27
+ delay(ms: number): Promise<void>;
28
+ /**
29
+ * 超时控制
30
+ * @param promise Promise对象
31
+ * @param timeout 超时时间(毫秒)
32
+ * @param timeoutMessage 超时错误信息
33
+ * @returns 带超时控制的Promise
34
+ */
35
+ withTimeout<T>(promise: Promise<T>, timeout: number, timeoutMessage?: string): Promise<T>;
36
+ /**
37
+ * 重试机制
38
+ * @param fn 要重试的函数
39
+ * @param maxRetries 最大重试次数
40
+ * @param delayMs 重试间隔(毫秒)
41
+ * @returns Promise
42
+ */
43
+ retry<T>(fn: () => Promise<T>, maxRetries?: number, delayMs?: number): Promise<T>;
44
+ /**
45
+ * 并发控制
46
+ * @param tasks 任务数组
47
+ * @param concurrency 并发数
48
+ * @returns Promise数组结果
49
+ */
50
+ concurrent<T>(tasks: (() => Promise<T>)[], concurrency?: number): Promise<T[]>;
51
+ /**
52
+ * 防抖函数
53
+ * @param fn 要防抖的函数
54
+ * @param delay 延迟时间(毫秒)
55
+ * @returns 防抖后的函数
56
+ */
57
+ debounce<T extends (...args: any[]) => any>(fn: T, delay: number): (...args: Parameters<T>) => void;
58
+ /**
59
+ * 节流函数
60
+ * @param fn 要节流的函数
61
+ * @param interval 间隔时间(毫秒)
62
+ * @returns 节流后的函数
63
+ */
64
+ throttle<T extends (...args: any[]) => any>(fn: T, interval: number): (...args: Parameters<T>) => void;
65
+ /**
66
+ * 创建异步队列实例
67
+ * @returns AsyncQueue实例
68
+ */
69
+ createQueue(): AsyncQueue;
70
+ /**
71
+ * 缓存装饰器(基于Promise)
72
+ * @param fn 要缓存的异步函数
73
+ * @param keyFn 生成缓存键的函数
74
+ * @param ttl 缓存时间(毫秒),0表示永不过期
75
+ * @returns 带缓存的函数
76
+ */
77
+ memoizeAsync<T extends (...args: any[]) => Promise<any>>(fn: T, keyFn?: (...args: Parameters<T>) => string, ttl?: number): T;
78
+ };
79
+
80
+ export { AsyncQueue, asyncUtils as default };
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * 常用颜色
7
+ */
8
+ const binColor = [
9
+ '#5470c6',
10
+ '#fd6f6f',
11
+ '#7aad62',
12
+ '#7ed3f4',
13
+ '#91c7ae',
14
+ '#ff915a',
15
+ '#a868c5',
16
+ '#fa541c',
17
+ '#ffa940',
18
+ '#ffc53d',
19
+ '#d4b106',
20
+ '#7cb305',
21
+ '#08979c',
22
+ '#1d39c4',
23
+ '#eb2f96',
24
+ '#ffdc60'
25
+ ];
26
+ const colorUtils = {
27
+ /**
28
+ * 从颜色数组中获取颜色
29
+ * @param index 颜色数组下标
30
+ * @returns 颜色值
31
+ */
32
+ getColor(index) {
33
+ return binColor[index % binColor.length];
34
+ }
35
+ };
36
+
37
+ exports.default = colorUtils;
38
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/core/colorUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;AAEG;AACH,MAAM,QAAQ,GAAG;IACf,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT;CACD;AAED,MAAM,UAAU,GAAG;AACjB;;;;AAIG;AACH,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,OAAO,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1C;;;;;"}
@@ -0,0 +1,10 @@
1
+ declare const colorUtils: {
2
+ /**
3
+ * 从颜色数组中获取颜色
4
+ * @param index 颜色数组下标
5
+ * @returns 颜色值
6
+ */
7
+ getColor(index: number): string;
8
+ };
9
+
10
+ export { colorUtils as default };