@nesvet/n
Version:
Various utilities
26 lines • 960 B
TypeScript
type Callback<Result> = (...args: unknown[]) => Result;
type FunctionOrBoolean = (() => unknown) | boolean;
type Options = {
leading?: FunctionOrBoolean;
maxWait?: number;
trailing?: FunctionOrBoolean;
};
type DebouncedFunction<Result> = {
(this: unknown, ..._args: unknown[]): Promise<Result>;
};
export type Debounced<Result> = {
callback: Callback<Result>;
promise: {
isResolved: boolean;
} & Promise<unknown>;
resolve: (value: Result) => void;
run(): Promise<Result>;
clear(shouldRun?: boolean): Promise<void>;
} & DebouncedFunction<Result>;
export declare function debounce<Result>(callback: Callback<Result>, limit?: number, options?: Options): Debounced<Result>;
export declare namespace debounce {
var noop: Debounced<void>;
}
export declare function throttle<Result>(callback: Callback<Result>, limit?: number, options?: Options): Debounced<Result>;
export {};
//# sourceMappingURL=debounce.d.ts.map