Skip to content

defineJobTypes

defineJobTypes<TJobTypeDefinitions, TExternalJobTypeDefinitions>(): JobTypes<TJobTypeDefinitions, TExternalJobTypeDefinitions>

Defined in: packages/core/src/entities/define-job-types.ts:29

Define job types with compile-time type checking only (no runtime validation). Returns a JobTypes that passes all values through without validation.

TJobTypeDefinitions extends BaseJobTypeDefinitions & { [K in string | number | symbol]: IsPlainValidJobType<TJobTypeDefinitions[K], keyof TJobTypeDefinitions & string> extends true ? TJobTypeDefinitions[K] : ValidateJobType<TJobTypeDefinitions[K], TJobTypeDefinitions, TJobTypeDefinitions | TExternalJobTypeDefinitions> } | `Error: local and external definitions share overlapping keys: ${string}`

TExternalJobTypeDefinitions extends BaseJobTypeDefinitions = Record<never, never>

JobTypes<TJobTypeDefinitions, TExternalJobTypeDefinitions>

// Inline definition
const jobTypes = defineJobTypes<{
'fetch': {
entry: true;
input: { url: string };
output: { data: unknown };
};
'process': {
entry: true;
input: { id: string };
continueWith: { typeName: 'finalize' };
blockers: [{ typeName: 'fetch' }];
};
'finalize': {
input: { result: string };
output: { done: boolean };
};
}>();