torotask
Version:
Task queue processing in NodeJS based on BullMQ and Redis
27 lines • 1.64 kB
TypeScript
import type { JobNode } from 'bullmq';
import type { TaskJobOptions, TaskJobState } from './job.js';
import type { TaskDefForGroup, TaskGroupDefinitionRegistry, TaskKeysForGroup } from './task-group.js';
import type { TaskPayloadFromDef } from './task.js';
export type TaskFlowRunBaseOptions = Omit<TaskJobOptions, 'repeat' | 'parent'>;
export type TaskFlowRunOptions = TaskFlowRunBaseOptions & Pick<TaskJobOptions, 'parent'>;
export type TaskFlowRunChildOptions = TaskFlowRunBaseOptions;
interface SpecificFlowRunConfig<TAllTaskGroupsDefs extends TaskGroupDefinitionRegistry, GName extends keyof TAllTaskGroupsDefs, TName extends TaskKeysForGroup<TAllTaskGroupsDefs, GName>, TOptions = TaskFlowRunOptions, TDef extends TaskDefForGroup<TAllTaskGroupsDefs, GName, TName> = TaskDefForGroup<TAllTaskGroupsDefs, GName, TName>> {
taskGroup: GName;
taskName: TName;
name?: string;
payload?: TaskPayloadFromDef<TDef>;
state?: TaskJobState;
options?: TOptions;
children?: TaskFlowRun<TAllTaskGroupsDefs, TaskFlowRunChildOptions>[];
}
export type TaskFlowRun<TAllTaskGroupsDefs extends TaskGroupDefinitionRegistry = TaskGroupDefinitionRegistry, TOptions extends TaskFlowRunBaseOptions = TaskFlowRunOptions> = {
[GKey in keyof TAllTaskGroupsDefs]: {
[TKey in TaskKeysForGroup<TAllTaskGroupsDefs, GKey>]: SpecificFlowRunConfig<TAllTaskGroupsDefs, GKey, TKey, TOptions>;
}[TaskKeysForGroup<TAllTaskGroupsDefs, GKey>];
}[keyof TAllTaskGroupsDefs];
export type TaskFlowGroupRun = TaskFlowRun<any> & {
taskGroup?: string;
};
export type TaskFlowRunNode = JobNode;
export {};
//# sourceMappingURL=flow.d.ts.map