@apparently/query
Version:
Simple and small data fetching library for SolidJS. Inspired by SWR.
23 lines (22 loc) • 926 B
TypeScript
import { InitializedResource } from "solid-js";
import type { ParentComponent, Accessor } from "solid-js";
import { ReactiveMap } from "@solid-primitives/map";
declare type Fetcher = (...args: any[]) => Promise<any>;
interface QueryConfig {
fetcher: Fetcher;
}
interface QueryData {
fetcher: Fetcher;
cache: ReactiveMapWithStableHash<string, unknown>;
}
declare class ReactiveMapWithStableHash<K, V> extends ReactiveMap<K, V> {
set(key: K, value: V): this;
}
export declare function useQueryContext(): QueryData;
export declare const QueryConfig: ParentComponent<QueryConfig>;
export declare function useCache(): ReactiveMapWithStableHash<string, unknown>;
export declare function useMutate<T>(): (key: string, data?: T) => Promise<void>;
export declare function useQuery<T>(getKey: Accessor<string | null>, initialValue?: T): [InitializedResource<T>, {
mutate: (data?: T) => Promise<void>;
}];
export {};