redux-automata
Version:
Finite state automata for Redux.
11 lines (10 loc) • 808 B
TypeScript
import * as Redux from "redux";
import { ActionDefinition } from "../core";
import { Task, TaskComplete, TaskState } from "./common";
export interface TaskAutomation<TResult, TInput = void, TError extends Error = Error, TState extends TaskState<TResult, TError> = TaskState<TResult, TError>> {
reducer: Redux.Reducer<TState>;
start: ActionDefinition<TInput>;
restart: ActionDefinition<TInput>;
cancel: ActionDefinition;
}
export declare function createTaskAutomation<TResult, TInput = void, TError extends Error = Error, TState extends TaskState<TResult, TError> = TaskState<TResult, TError>>(dataName: string, processTask: Task<TResult, TInput>, onSuccess?: TaskComplete<TResult, TInput>, onFailure?: TaskComplete<TError, TInput>): TaskAutomation<TResult, TInput, TError, TState>;