@nerjs/batchloader
Version:
`BatchLoader` is a tool for batching data requests with support for deduplication, caching, and parallel task management. It is designed to enhance flexibility and performance in scenarios requiring asynchronous data processing. This module was inspired b
15 lines (14 loc) • 773 B
TypeScript
import { ILimitedTimekeeperMetrics, ITask, ITimekeeper, LimitedTimekeeperOptions } from './interfaces';
import { Task } from './task';
import { UnlimitedTimekeeper } from './unlimited.timekeeper';
export declare class LimitedTimekeeper<D> extends UnlimitedTimekeeper<D, ILimitedTimekeeperMetrics> implements ITimekeeper<D> {
private readonly limitedOptions;
private waitingTasks;
constructor({ concurrencyLimit, maxWaitingTimeMs, ...options }: LimitedTimekeeperOptions<D>, metrics?: ILimitedTimekeeperMetrics);
waiting(): ITask<D>[];
private runNextWaitingTask;
protected runTask(task: Task<D>): void;
protected findTaskById(id: string): Task<D> | null;
protected rejectPendingTask(task: Task<D>, error: unknown): void;
clear(): void;
}