@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
43 lines • 1.49 kB
TypeScript
import StatefulPromise from "./stateful-promise";
interface Task<TValue = unknown> {
readonly promise: StatefulPromise<TValue>;
readonly abort: (reason?: unknown) => void;
}
/**
* [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#add)
*/
export interface TaskRunnerArgs {
signal: AbortSignal;
}
/**
* [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#add)
*/
export interface TaskOptions {
readonly signal?: AbortSignal | undefined;
}
/**
* [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/)
*/
export default class TaskQueue {
protected readonly _queue: Task[];
protected readonly _idle: (() => void)[];
protected rm(task: Task): void;
/**
* [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#count)
*/
get count(): number;
/**
* [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#add)
*/
add<TValue>(runner: (args: TaskRunnerArgs) => TValue | PromiseLike<TValue>, options?: TaskOptions | undefined): StatefulPromise<TValue>;
/**
* [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#idle)
*/
idle(): StatefulPromise<void>;
/**
* [API Reference](https://tai-kun.github.io/surrealdb.js/v2/api/utils/task-queue/#abort)
*/
abort(reason?: unknown): void;
}
export {};
//# sourceMappingURL=task-queue.d.ts.map