UNPKG

@zhengxs/wechaty-plugin-assistant

Version:
72 lines (60 loc) 2.26 kB
import { Queue, RunFunction } from './queue'; interface TimeoutOptions { /** Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already. */ timeout?: number; /** Whether or not a timeout is considered an exception. @defaultValue false */ throwOnTimeout?: boolean; } export interface Options<QueueType extends Queue<RunFunction, QueueOptions>, QueueOptions extends QueueAddOptions> extends TimeoutOptions { /** Concurrency limit. Minimum: `1`. @defaultValue Infinity */ readonly concurrency?: number; /** Whether queue tasks within concurrency limit, are auto-executed as soon as they're added. @defaultValue true */ readonly autoStart?: boolean; /** Class with a `enqueue` and `dequeue` method, and a `size` getter. See the [Custom QueueClass](https://github.com/sindresorhus/p-queue#custom-queueclass) section. */ readonly queueClass?: new () => QueueType; /** The max number of runs in the given interval of time. Minimum: `1`. @defaultValue Infinity */ readonly intervalCap?: number; /** The length of time in milliseconds before the interval count resets. Must be finite. Minimum: `0`. @defaultValue 0 */ readonly interval?: number; /** Whether the task must finish in the given interval or will be carried over into the next interval count. @defaultValue false */ readonly carryoverConcurrencyCount?: boolean; } export interface QueueAddOptions extends TaskOptions, TimeoutOptions { /** Priority of operation. Operations with greater priority will be scheduled first. @defaultValue 0 */ readonly priority?: number; } export interface TaskOptions { /** [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) for cancellation of the operation. When aborted, it will be removed from the queue and the `queue.add()` call will reject with an `AbortError`. If the operation is already running, the signal will need to be handled by the operation itself. */ readonly signal?: AbortSignal; } export {};