swr-store
Version:
SWR stores for data-fetching
14 lines (13 loc) • 821 B
TypeScript
export type ReactiveCacheListener<T> = (value: T) => void;
export interface ReactiveCacheRef<T> {
value: T;
}
export interface ReactiveCache<T> {
cache: Map<string, ReactiveCacheRef<T>>;
subscribers: Map<string, Set<ReactiveCacheListener<T>>>;
}
export declare function createReactiveCache<T>(): ReactiveCache<T>;
export declare function createReactiveCacheRef<T>(cache: ReactiveCache<T>, key: string, value: T): ReactiveCacheRef<T>;
export declare function subscribeReactiveCache<T>(cache: ReactiveCache<T>, key: string, listener: ReactiveCacheListener<T>): () => void;
export declare function setReactiveCacheValue<T>(cache: ReactiveCache<T>, key: string, value: T, notify?: boolean): void;
export declare function getReactiveCacheListenerSize<T>(cache: ReactiveCache<T>, key: string): number;