index.d.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import type { MessagePort } from 'node:worker_threads';
  2. import { AsyncResource } from 'node:async_hooks';
  3. import type { WorkerInfo } from '../worker_pool';
  4. import type { AbortSignalAny } from '../abort';
  5. import { kQueueOptions } from '../symbols';
  6. import type { Task, TaskQueue, PiscinaTask } from './common';
  7. export { ArrayTaskQueue } from './array_queue';
  8. export { FixedQueue } from './fixed_queue';
  9. export type TaskCallback = (err: Error, result: any) => void;
  10. export type TransferList = MessagePort extends {
  11. postMessage: (value: any, transferList: infer T) => any;
  12. } ? T : never;
  13. export type TransferListItem = TransferList extends Array<infer T> ? T : never;
  14. /**
  15. * Verifies if a given TaskQueue is valid
  16. *
  17. * @export
  18. * @param {*} value
  19. * @return {*} {boolean}
  20. */
  21. export declare function isTaskQueue(value: TaskQueue): boolean;
  22. export declare class TaskInfo extends AsyncResource implements Task {
  23. callback: TaskCallback;
  24. task: any;
  25. transferList: TransferList;
  26. filename: string;
  27. name: string;
  28. taskId: number;
  29. abortSignal: AbortSignalAny | null;
  30. abortListener: (() => void) | null;
  31. workerInfo: WorkerInfo | null;
  32. created: number;
  33. started: number;
  34. constructor(task: any, transferList: TransferList, filename: string, name: string, callback: TaskCallback, abortSignal: AbortSignalAny | null, triggerAsyncId: number);
  35. releaseTask(): any;
  36. done(err: Error | null, result?: any): void;
  37. get [kQueueOptions](): object | null;
  38. get interface(): PiscinaTask;
  39. }
  40. export { Task, TaskQueue, PiscinaTask };