@orbitinghail/sqlsync-solid-js
Version:
SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge.
29 lines (28 loc) • 1.25 kB
TypeScript
import { ConnectionStatus, DocId, DocType, ParameterizedQuery, Row, SQLSync } from "@orbitinghail/sqlsync-worker";
import { Accessor } from "solid-js";
export declare function useSQLSync(): Accessor<SQLSync>;
type MutateFn<M> = (mutation: M) => Promise<void>;
type UseMutateFn<M> = (docId: DocId) => MutateFn<M>;
type UseQueryFn = <R = Row>(docId: Accessor<DocId>, query: Accessor<ParameterizedQuery | string>) => Accessor<QueryState<R>>;
type SetConnectionEnabledFn = (enabled: boolean) => Promise<void>;
type UseSetConnectionEnabledFn = (docId: DocId) => SetConnectionEnabledFn;
export interface DocHooks<M> {
useMutate: UseMutateFn<M>;
useQuery: UseQueryFn;
useSetConnectionEnabled: UseSetConnectionEnabledFn;
}
export declare function createDocHooks<M>(docType: Accessor<DocType<M>>): DocHooks<M>;
export type QueryState<R> = {
state: "pending";
rows?: R[];
} | {
state: "success";
rows: R[];
} | {
state: "error";
error: Error;
rows?: R[];
};
export declare function useQuery<M, R = Row>(docType: Accessor<DocType<M>>, docId: Accessor<DocId>, rawQuery: Accessor<ParameterizedQuery | string>): Accessor<QueryState<R>>;
export declare const useConnectionStatus: () => Accessor<ConnectionStatus>;
export {};