swr-store
Version:
SWR stores for data-fetching
26 lines (25 loc) • 1.02 kB
TypeScript
import { ReactiveCacheListener } from './reactive-cache';
export interface MutationPending<T> {
data: Promise<T>;
status: 'pending';
}
export interface MutationSuccess<T> {
data: T;
status: 'success';
}
export interface MutationFailure {
data: any;
status: 'failure';
}
export type MutationResult<T> = MutationPending<T> | MutationSuccess<T> | MutationFailure;
export interface Mutation<T> {
result: MutationResult<T>;
timestamp: number;
isValidating: boolean;
}
export declare const MUTATION_CACHE: import("./reactive-cache").ReactiveCache<Mutation<any>>;
export type MutationListener<T> = ReactiveCacheListener<Mutation<T>>;
export declare function subscribeMutation<T>(key: string, listener: MutationListener<T>): () => void;
export declare function setMutation<T>(key: string, value: Mutation<T>): void;
export declare function getMutation<T>(key: string): Mutation<T> | undefined;
export declare function getMutationListenerSize(key: string): number;