UNPKG

@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

27 lines (26 loc) 1.19 kB
import { ITask, ITimekeeper, IUnlimitedTimekeeperMetrics, UnlimitedTimekeeperOptions } from './interfaces'; import { Task } from './task'; export declare class UnlimitedTimekeeper<D, M extends IUnlimitedTimekeeperMetrics = IUnlimitedTimekeeperMetrics> implements ITimekeeper<D> { protected readonly options: UnlimitedTimekeeperOptions<D>; protected readonly metrics?: M | undefined; protected currentTask: Task<D> | null; protected runnedTasks: Map<string, Task<D>>; constructor(options: UnlimitedTimekeeperOptions<D>, metrics?: M | undefined); current(): ITask<D>; run(): void; abort(task: string | ITask<D>, reason?: unknown): void; wait(task: string | ITask<D>): Promise<void>; clear(): void; private findTask; protected findTaskById(id: string): Task<D> | null; private tidRunner; private startRunnerTimeout; private clearRunnerTimeout; private runCurrentTask; private callRunner; protected runTask(task: Task<D>): void; private resolveTask; private rejectRunnedTask; protected rejectPendingTask(task: Task<D>, error: unknown): void; protected callAbortedRunner(task: Task<D>, error: unknown): void; }