torotask
Version:
Task queue processing in NodeJS based on BullMQ and Redis
26 lines • 1.09 kB
TypeScript
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