react-query
Version:
Hooks for managing, caching and syncing asynchronous and remote data in React
68 lines (67 loc) • 2.62 kB
TypeScript
import { MutationOptions, MutationStatus, MutationMeta } from './types';
import { MutationCache } from './mutationCache';
import { MutationObserver } from './mutationObserver';
interface MutationConfig<TData, TError, TVariables, TContext> {
mutationId: number;
mutationCache: MutationCache;
options: MutationOptions<TData, TError, TVariables, TContext>;
defaultOptions?: MutationOptions<TData, TError, TVariables, TContext>;
state?: MutationState<TData, TError, TVariables, TContext>;
meta?: MutationMeta;
}
export interface MutationState<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
context: TContext | undefined;
data: TData | undefined;
error: TError | null;
failureCount: number;
isPaused: boolean;
status: MutationStatus;
variables: TVariables | undefined;
}
interface FailedAction {
type: 'failed';
}
interface LoadingAction<TVariables, TContext> {
type: 'loading';
variables?: TVariables;
context?: TContext;
}
interface SuccessAction<TData> {
type: 'success';
data: TData;
}
interface ErrorAction<TError> {
type: 'error';
error: TError;
}
interface PauseAction {
type: 'pause';
}
interface ContinueAction {
type: 'continue';
}
interface SetStateAction<TData, TError, TVariables, TContext> {
type: 'setState';
state: MutationState<TData, TError, TVariables, TContext>;
}
export declare type Action<TData, TError, TVariables, TContext> = ContinueAction | ErrorAction<TError> | FailedAction | LoadingAction<TVariables, TContext> | PauseAction | SetStateAction<TData, TError, TVariables, TContext> | SuccessAction<TData>;
export declare class Mutation<TData = unknown, TError = unknown, TVariables = void, TContext = unknown> {
state: MutationState<TData, TError, TVariables, TContext>;
options: MutationOptions<TData, TError, TVariables, TContext>;
mutationId: number;
meta: MutationMeta | undefined;
private observers;
private mutationCache;
private retryer?;
constructor(config: MutationConfig<TData, TError, TVariables, TContext>);
setState(state: MutationState<TData, TError, TVariables, TContext>): void;
addObserver(observer: MutationObserver<any, any, any, any>): void;
removeObserver(observer: MutationObserver<any, any, any, any>): void;
cancel(): Promise<void>;
continue(): Promise<TData>;
execute(): Promise<TData>;
private executeMutation;
private dispatch;
}
export declare function getDefaultState<TData, TError, TVariables, TContext>(): MutationState<TData, TError, TVariables, TContext>;
export {};