UNPKG

torotask

Version:

Task queue processing in NodeJS based on BullMQ and Redis

28 lines 1.17 kB
import type { TaskGroup } from '../task-group.js'; import type { TaskRegistry } from './task.js'; import type { TaskGroupDefinition, TaskGroupDefinitionRegistry } from './task-group-definition.js'; import type { TaskServer } from '../server.js'; /** * Helper type to get strongly-typed task groups from a TaskServer instance * based on the task group definitions used to initialize it. * * @example * ``` * const taskGroupDefs = { * groupA: { name: 'groupA', definitions: { ... } }, * groupB: { name: 'groupB', definitions: { ... } } * } as const; * * const server = new TaskServer({ taskGroupDefinitions: taskGroupDefs }); * * // Get strongly-typed task groups * const groups = getTypedTaskGroups<typeof taskGroupDefs>(server); * * // Now you have type-safe access to task groups and their tasks * const taskA = groups.groupA.tasks.taskA; * ``` */ export declare function getTypedTaskGroups<TGroupDefs extends TaskGroupDefinitionRegistry>(server: TaskServer): { [K in keyof TGroupDefs]: TGroupDefs[K] extends TaskGroupDefinition<infer TDefs> ? TaskGroup<TDefs, TaskRegistry<TDefs>> : never; }; //# sourceMappingURL=server-helper.d.ts.map