Interface ITask<TInput, TOutput, TDependencies, TEventDefinitionInput>

This is the response after the definition has been prepared. TODO: better naming?

interface ITask<TInput, TOutput, TDependencies, TEventDefinitionInput> {
    computedDependencies?: DependencyValuesType<TDependencies>;
    dependencies: TDependencies | (() => TDependencies);
    events: {
        afterRun: IEventDefinition<AfterRunEventPayload<TInput, TOutput>>;
        beforeRun: IEventDefinition<BeforeRunEventPayload<TInput>>;
        onError: IEventDefinition<OnErrorEventPayload>;
    };
    id: string;
    meta?: ITaskMeta;
    middleware: IMiddlewareDefinition<any>[];
    on?: IEventDefinition<TEventDefinitionInput>;
    run: ((input: TEventDefinitionInput extends null
        ? TInput
        : TEventDefinitionInput, dependencies: DependencyValuesType<TDependencies>) => TOutput);
}

Type Parameters

  • TInput = any
  • TOutput extends Promise<any> = any
  • TDependencies extends DependencyMapType = {}
  • TEventDefinitionInput = null

Hierarchy (view full)

Properties

computedDependencies?: DependencyValuesType<TDependencies>
dependencies: TDependencies | (() => TDependencies)

These events are automatically populated after the task has been defined.

id: string
meta?: ITaskMeta
middleware: IMiddlewareDefinition<any>[]
run: ((input: TEventDefinitionInput extends null
    ? TInput
    : TEventDefinitionInput, dependencies: DependencyValuesType<TDependencies>) => TOutput)