UNPKG

reqoal

Version:

A lightweight and efficient JavaScript library for request coalescing — merge concurrent identical async calls into a single request to reduce load and improve performance.

29 lines (26 loc) 1.46 kB
declare class ReqoalInstance { private _pruneIntervalMs; private _ttlMs; private _maxConcurrency; private _console; private _interval; private _resultCache; private _inFlightRequests; private _currentConcurrency; private _customKeyGen?; constructor(intervalMs?: number, ttlMs?: number, consoler?: Console, maxConcurrency?: number); coalesce<T, Args extends unknown[]>(fn: (...args: Args) => T | Promise<T>, ...args: Args): Promise<T>; isCoalesced<Args extends unknown[]>(fn: (...args: Args) => Promise<unknown>, ...args: Args): boolean; setKeyGenerator(keyGen: (functionName: string, ...args: unknown[]) => string): void; prune(): void; invalidate<Args extends unknown[]>(fn: (...args: Args) => Promise<unknown>, ...args: Args): void; clear(): void; private _createKey; } declare const coalesce: <T, Args extends unknown[]>(fn: (...args: Args) => T | Promise<T>, ...args: Args) => Promise<T>; declare const isCoalesced: <Args extends unknown[]>(fn: (...args: Args) => Promise<unknown>, ...args: Args) => boolean; declare const invalidate: <Args extends unknown[]>(fn: (...args: Args) => Promise<unknown>, ...args: Args) => void; declare const clear: () => void; declare const prune: () => void; declare const setKeyGenerator: (keyGen: (functionName: string, ...args: unknown[]) => string) => void; export { ReqoalInstance, clear, coalesce, invalidate, isCoalesced, prune, setKeyGenerator };