UNPKG

torotask

Version:

Task queue processing in NodeJS based on BullMQ and Redis

26 lines 1.09 kB
import type { JobsOptions } from 'bullmq'; import type { StepResult } from './step.js'; import type { IfAny, UnpackList } from './utils.js'; import type { TaskJob } from '../job.js'; /** * Defines the structure of the state object used by StepExecutor, * intended to be part of the TaskJob's overall state. */ export type TaskJobStepState = { stepState?: Record<string, StepResult>; stepOrder?: string[]; _currentStepIndex?: number; }; export type TaskJobState = TaskJobStepState & { customData?: Record<string, any>; }; export type TaskJobData<PayloadType = any, StateType extends TaskJobState = TaskJobState> = { payload: PayloadType; state: StateType; }; export type TaskJobDataItem<DataType, Item> = IfAny<DataType, any, Item extends keyof DataType ? (UnpackList<DataType[Item]> extends object ? UnpackList<DataType[Item]> : never) : never>; export type TaskJobOptions<Datatype = any, StateType = TaskJobDataItem<Datatype, 'state'>> = Omit<JobsOptions, 'parent'> & { state?: StateType; parent?: Partial<TaskJob>; }; //# sourceMappingURL=job.d.ts.map