@avatijs/debounce 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +133 -217
- package/dist/cjs/index.js +368 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.min.js +7 -0
- package/dist/cjs/index.min.js.map +1 -0
- package/dist/esm/index.js +353 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +7 -0
- package/dist/esm/index.min.js.map +1 -0
- package/dist/types/debouce.d.ts +1 -0
- package/dist/types/debouce.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/umd/index.js +378 -2
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/index.min.js +8 -0
- package/dist/umd/index.min.js.map +1 -0
- package/package.json +12 -5
- package/dist/debouce.d.ts +0 -72
- package/dist/index.d.ts +0 -1
package/dist/debouce.d.ts
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Advanced debounce utility with TypeScript support
|
3
|
-
* Provides a way to limit the rate at which a function can fire by delaying its execution
|
4
|
-
* until after a specified amount of time has elapsed since its last invocation.
|
5
|
-
* @module debounce
|
6
|
-
*/
|
7
|
-
/**
|
8
|
-
* Generic function type that can accept any arguments and return any value
|
9
|
-
* Used as a constraint for functions that can be debounced
|
10
|
-
*/
|
11
|
-
type AnyFunction = (...args: any[]) => any;
|
12
|
-
/**
|
13
|
-
* Configuration options for the debounce function
|
14
|
-
* @interface DebounceOptions
|
15
|
-
*/
|
16
|
-
interface DebounceOptions {
|
17
|
-
/** Number of milliseconds to delay execution (default: 0) */
|
18
|
-
readonly wait?: number;
|
19
|
-
/** Whether to execute on the leading edge of the timeout (default: false) */
|
20
|
-
readonly leading?: boolean;
|
21
|
-
/** Whether to execute on the trailing edge of the timeout (default: true) */
|
22
|
-
readonly trailing?: boolean;
|
23
|
-
/** Maximum time the function can be delayed before forced execution */
|
24
|
-
readonly maxWait?: number;
|
25
|
-
/** Enable debug logging for troubleshooting */
|
26
|
-
readonly debug?: boolean;
|
27
|
-
/** AbortController signal for cancellation */
|
28
|
-
readonly signal?: AbortSignal;
|
29
|
-
onError?: (error: Error) => void;
|
30
|
-
}
|
31
|
-
/**
|
32
|
-
* Interface for the debounced function, including utility methods
|
33
|
-
* @interface DebouncedFunction
|
34
|
-
* @template T - The type of the original function
|
35
|
-
*/
|
36
|
-
interface DebouncedFunction<T extends AnyFunction> {
|
37
|
-
/** Cancels any pending function invocations */
|
38
|
-
readonly cancel: () => void;
|
39
|
-
/** Immediately executes any pending function call */
|
40
|
-
readonly flush: (...args: Parameters<T>) => Promise<Awaited<ReturnType<T>>>;
|
41
|
-
/** Checks if there are any pending invocations */
|
42
|
-
readonly pending: () => boolean;
|
43
|
-
/** Cleans up resources used by the debounced function */
|
44
|
-
readonly cleanup: () => void;
|
45
|
-
/** The debounced function that wraps the original */
|
46
|
-
(...args: Parameters<T>): Promise<Awaited<ReturnType<T>>>;
|
47
|
-
}
|
48
|
-
/**
|
49
|
-
* Creates a debounced version of the provided function that delays invoking func until after
|
50
|
-
* wait milliseconds have elapsed since the last time the debounced function was invoked.
|
51
|
-
*
|
52
|
-
* @template T - The type of the function to debounce
|
53
|
-
* @param {T} func - The function to debounce
|
54
|
-
* @param {DebounceOptions} [options={}] - Configuration options
|
55
|
-
* @returns {DebouncedFunction<T>} The debounced function
|
56
|
-
* @throws {TypeError} If func is not a function
|
57
|
-
* @throws {RangeError} If wait or maxWait values are invalid
|
58
|
-
* @throws {Error} If neither leading nor trailing is true
|
59
|
-
*
|
60
|
-
* @example
|
61
|
-
* const debouncedFn = debounce(async (x: number) => x * 2, { wait: 1000 });
|
62
|
-
* await debouncedFn(5); // Will execute after 1000ms of inactivity
|
63
|
-
* const debouncedFn = debounce(
|
64
|
-
* async (x: number) => x * 2,
|
65
|
-
* {
|
66
|
-
* wait: 1000,
|
67
|
-
* onError: (error) => console.error('Error in debounced function:', error)
|
68
|
-
* }
|
69
|
-
* );
|
70
|
-
*/
|
71
|
-
declare function debounce<T extends AnyFunction>(func: T, options?: DebounceOptions): DebouncedFunction<T>;
|
72
|
-
export { debounce, type DebouncedFunction, type DebounceOptions };
|
package/dist/index.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * from './debouce';
|