createProcessors
createProcessors<
TClientJobTypeDefinitions,TStateAdapter,TJobTypeDefinitions,TExternalJobTypeDefinitions,TProcessors,TAttemptMiddleware,TMergedJobTypeDefinitions>(options):Processors<TJobTypeDefinitions,TAttemptMiddleware>
Defined in: packages/core/src/worker/create-processors.ts:54
Define a processor registry for a job type slice with full type inference.
Handlers are type-checked against the slice’s own definitions plus any
external definitions it declares (for cross-slice blocker / continueWith
references). The returned registry is plugged into createInProcessWorker.
Registry-level backoffConfig / attemptConfig cascade onto every processor
in this registry unless that processor overrides them.
Type Parameters
Section titled “Type Parameters”TClientJobTypeDefinitions
Section titled “TClientJobTypeDefinitions”TClientJobTypeDefinitions extends BaseJobTypeDefinitions
TStateAdapter
Section titled “TStateAdapter”TStateAdapter extends StateAdapter<any, any>
TJobTypeDefinitions
Section titled “TJobTypeDefinitions”TJobTypeDefinitions extends BaseJobTypeDefinitions
TExternalJobTypeDefinitions
Section titled “TExternalJobTypeDefinitions”TExternalJobTypeDefinitions extends BaseJobTypeDefinitions
TProcessors
Section titled “TProcessors”TProcessors extends string
TAttemptMiddleware
Section titled “TAttemptMiddleware”TAttemptMiddleware extends readonly AnyAttemptMiddleware[] = readonly []
TMergedJobTypeDefinitions
Section titled “TMergedJobTypeDefinitions”TMergedJobTypeDefinitions extends BaseJobTypeDefinitions = MergedDefs<TJobTypeDefinitions, TExternalJobTypeDefinitions>
Parameters
Section titled “Parameters”options
Section titled “options”attemptConfig?
Section titled “attemptConfig?”attemptMiddleware?
Section titled “attemptMiddleware?”TAttemptMiddleware & readonly AttemptMiddleware<TStateAdapter, any, any, any, any>[]
backoffConfig?
Section titled “backoffConfig?”client
Section titled “client”[TJobTypeDefinitions] extends [TClientJobTypeDefinitions] ? Client<TClientJobTypeDefinitions, TStateAdapter> : `Error: client is missing required job types: ${Exclude<keyof TJobTypeDefinitions & string, keyof TClientJobTypeDefinitions & string>}`
jobTypes
Section titled “jobTypes”JobTypes<TJobTypeDefinitions, TExternalJobTypeDefinitions>
processors
Section titled “processors”{ [K in string]: InProcessWorkerProcessor<TStateAdapter, TMergedJobTypeDefinitions, K, MergedAttemptHandlerCtx<TAttemptMiddleware>, MergedPrepareCtx<TAttemptMiddleware>, MergedStepCtx<TAttemptMiddleware>, MergedCompleteCtx<TAttemptMiddleware>> } & Record<Exclude<TProcessors, keyof TJobTypeDefinitions & string>, never>
Returns
Section titled “Returns”Processors<TJobTypeDefinitions, TAttemptMiddleware>
Example
Section titled “Example”const orderProcessors = createProcessors({ client, jobTypes: orderJobTypes, attemptMiddleware: [tracingMiddleware, loggerMiddleware], processors: { "orders.create": { attemptHandler: async ({ complete, traceId, log }) => complete(async ({ finish }) => finish({ output: { orderId: "1" } })), }, },});