@ceale/util 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +49 -0
- package/dist/esm/index.js +49 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/task.d.ts +20 -0
- package/dist/types/time.d.ts +32 -0
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -29,7 +29,13 @@ var __export = (target, all) => {
|
|
|
29
29
|
// src/index.ts
|
|
30
30
|
var exports_src = {};
|
|
31
31
|
__export(exports_src, {
|
|
32
|
+
waitSync: () => waitSync,
|
|
33
|
+
wait: () => wait,
|
|
32
34
|
uri: () => uri,
|
|
35
|
+
throttle: () => throttle,
|
|
36
|
+
sleepAsync: () => sleepAsync,
|
|
37
|
+
sleep: () => sleep,
|
|
38
|
+
debounce: () => debounce,
|
|
33
39
|
css: () => css
|
|
34
40
|
});
|
|
35
41
|
module.exports = __toCommonJS(exports_src);
|
|
@@ -200,3 +206,46 @@ var css;
|
|
|
200
206
|
`);
|
|
201
207
|
};
|
|
202
208
|
})(css ||= {});
|
|
209
|
+
// src/time.ts
|
|
210
|
+
var wait = async (time) => {
|
|
211
|
+
return new Promise((resolve) => setTimeout(resolve, time));
|
|
212
|
+
};
|
|
213
|
+
var sleepAsync = wait;
|
|
214
|
+
var sleep = (time) => {
|
|
215
|
+
const start = Date.now();
|
|
216
|
+
while (true)
|
|
217
|
+
if (Date.now() - start >= time)
|
|
218
|
+
return;
|
|
219
|
+
};
|
|
220
|
+
var waitSync = sleep;
|
|
221
|
+
// src/task.ts
|
|
222
|
+
var debounce = (func, delay) => {
|
|
223
|
+
let timer = null;
|
|
224
|
+
return function(...args) {
|
|
225
|
+
if (timer) {
|
|
226
|
+
clearTimeout(timer);
|
|
227
|
+
}
|
|
228
|
+
timer = setTimeout(() => {
|
|
229
|
+
func.apply(this, args);
|
|
230
|
+
}, delay);
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
var throttle = (func, delay) => {
|
|
234
|
+
let timer = false;
|
|
235
|
+
let lastArgs = null;
|
|
236
|
+
return function(...args) {
|
|
237
|
+
if (timer) {
|
|
238
|
+
lastArgs = args;
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
func.apply(this, args);
|
|
242
|
+
timer = true;
|
|
243
|
+
setTimeout(() => {
|
|
244
|
+
if (lastArgs) {
|
|
245
|
+
func.apply(this, lastArgs);
|
|
246
|
+
lastArgs = null;
|
|
247
|
+
}
|
|
248
|
+
timer = false;
|
|
249
|
+
}, delay);
|
|
250
|
+
};
|
|
251
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -164,7 +164,56 @@ var css;
|
|
|
164
164
|
`);
|
|
165
165
|
};
|
|
166
166
|
})(css ||= {});
|
|
167
|
+
// src/time.ts
|
|
168
|
+
var wait = async (time) => {
|
|
169
|
+
return new Promise((resolve) => setTimeout(resolve, time));
|
|
170
|
+
};
|
|
171
|
+
var sleepAsync = wait;
|
|
172
|
+
var sleep = (time) => {
|
|
173
|
+
const start = Date.now();
|
|
174
|
+
while (true)
|
|
175
|
+
if (Date.now() - start >= time)
|
|
176
|
+
return;
|
|
177
|
+
};
|
|
178
|
+
var waitSync = sleep;
|
|
179
|
+
// src/task.ts
|
|
180
|
+
var debounce = (func, delay) => {
|
|
181
|
+
let timer = null;
|
|
182
|
+
return function(...args) {
|
|
183
|
+
if (timer) {
|
|
184
|
+
clearTimeout(timer);
|
|
185
|
+
}
|
|
186
|
+
timer = setTimeout(() => {
|
|
187
|
+
func.apply(this, args);
|
|
188
|
+
}, delay);
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
var throttle = (func, delay) => {
|
|
192
|
+
let timer = false;
|
|
193
|
+
let lastArgs = null;
|
|
194
|
+
return function(...args) {
|
|
195
|
+
if (timer) {
|
|
196
|
+
lastArgs = args;
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
func.apply(this, args);
|
|
200
|
+
timer = true;
|
|
201
|
+
setTimeout(() => {
|
|
202
|
+
if (lastArgs) {
|
|
203
|
+
func.apply(this, lastArgs);
|
|
204
|
+
lastArgs = null;
|
|
205
|
+
}
|
|
206
|
+
timer = false;
|
|
207
|
+
}, delay);
|
|
208
|
+
};
|
|
209
|
+
};
|
|
167
210
|
export {
|
|
211
|
+
waitSync,
|
|
212
|
+
wait,
|
|
168
213
|
uri,
|
|
214
|
+
throttle,
|
|
215
|
+
sleepAsync,
|
|
216
|
+
sleep,
|
|
217
|
+
debounce,
|
|
169
218
|
css
|
|
170
219
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将传入的函数变为防抖版本
|
|
3
|
+
*
|
|
4
|
+
* 在间隔低于`delay`连续触发函数时,只会执行最后一次调用,并在最后一次调用后延时`delay`执行
|
|
5
|
+
* @param func 原始函数
|
|
6
|
+
* @param delay 防抖时长,毫秒
|
|
7
|
+
* @returns 带防抖的函数
|
|
8
|
+
*/
|
|
9
|
+
export declare const debounce: <F extends (...args: any[]) => void>(func: F, delay: number) => ((...args: Parameters<F>) => void);
|
|
10
|
+
/**
|
|
11
|
+
* 将传入的函数变为节流版本
|
|
12
|
+
*
|
|
13
|
+
* 函数将在首次调用后执行,首次调用后的`delay`内,如重复调用,
|
|
14
|
+
*
|
|
15
|
+
* 则函数将以最后一次调用的参数,在首次调用后延迟`delay`后执行
|
|
16
|
+
* @param func 原始函数
|
|
17
|
+
* @param delay 节流时长,毫秒
|
|
18
|
+
* @returns 带节流的函数
|
|
19
|
+
*/
|
|
20
|
+
export declare const throttle: <F extends (...args: any[]) => void>(func: F, delay: number) => ((...args: Parameters<F>) => void);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 异步地等待指定时间,基于Promise和setTimeout实现
|
|
3
|
+
* @param time 时长,单位为毫秒
|
|
4
|
+
* @returns void
|
|
5
|
+
* @alias sleepAsync
|
|
6
|
+
*/
|
|
7
|
+
export declare const wait: (time: number) => Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* 异步地等待指定时间,基于Promise和setTimeout实现
|
|
10
|
+
* @param time 时长,单位为毫秒
|
|
11
|
+
* @returns void
|
|
12
|
+
* @alias wait
|
|
13
|
+
*/
|
|
14
|
+
export declare const sleepAsync: (time: number) => Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* 同步地等待指定时间,基于while和Date.now实现
|
|
17
|
+
*
|
|
18
|
+
* **请慎用该方法,其可能导致cpu占用过高**
|
|
19
|
+
* @param time 时长,单位为毫秒
|
|
20
|
+
* @returns void
|
|
21
|
+
* @alias waitSync
|
|
22
|
+
*/
|
|
23
|
+
export declare const sleep: (time: number) => void;
|
|
24
|
+
/**
|
|
25
|
+
* 同步地等待指定时间,基于while和Date.now实现
|
|
26
|
+
*
|
|
27
|
+
* **请慎用该方法,其可能导致cpu占用过高**
|
|
28
|
+
* @param time 时长,单位为毫秒
|
|
29
|
+
* @returns void
|
|
30
|
+
* @alias sleep
|
|
31
|
+
*/
|
|
32
|
+
export declare const waitSync: (time: number) => void;
|