UNPKG

@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
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 {};