Interface ITask<TInput, TOutput, TDependencies, TOn>

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

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

Type Parameters

Hierarchy (view full)

Properties

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

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

id: string
listenerOrder?: number

This makes sense only when on is specified to provide the order of the execution. The event with the lowest order will be executed first.

meta?: ITaskMeta
middleware: IMiddlewareDefinition<any>[]
on?: TOn

Listen to events in a simple way

run: ((input: TOn extends undefined
    ? TInput
    : IEvent<ExtractEventParams<TOn>>, dependencies: DependencyValuesType<TDependencies>) => TOutput)