UNPKG

push-it-to-the-limit

Version:

Delay function wrappers for common purposes. Throttle, debounce and ratelimit with promises

38 lines (37 loc) 993 B
export type IAny = any; export type IHandler = (...args: any) => any; export type ILimit = number; export type IOpts = { target: IHandler; delay: number; context?: IAny; limit?: ILimit; }; export type TimeoutID = number; export type ITarget = IHandler | IOpts; export type IRepeater = { (...args: any): any; target: IHandler; timeout?: TimeoutID; limit?: ILimit; delay?: number; args?: Array<IAny>; context?: IAny; }; export type IWrapper = { (fn: ITarget): IRepeater; }; /** * Creates a new repeater. * @param {Function} target * @param {number} delay * @param {*} [context] * @param {number} [limit] * @return {IRepeater} * @property {Function/IOpts} target * @property {number} delay * @property {*} context * @property {Array<*>} [args] arguments of the last invocation * @property {number} [timeout] TimeoutID */ export declare function createRepeater(target: ITarget, delay: number, context?: IAny, limit?: ILimit): IRepeater;