UNPKG

@dataql/react-native

Version:

DataQL React Native SDK with offline-first capabilities and clean API

53 lines (52 loc) 1.89 kB
import { useLiveQuery as useDrizzleLiveQuery } from "drizzle-orm/expo-sqlite"; import { OfflineCacheManager } from "../cache/OfflineCacheManager"; import { SyncManager } from "../sync/SyncManager"; import { DatabaseClient } from "../db/client"; import type { MutationResult, SyncStatus } from "../types"; export declare function setGlobalInstances(cacheManager: OfflineCacheManager, syncManager: SyncManager, dbClient: DatabaseClient): void; export declare function useQuery<T = any>(tableName: string, filter?: any): { data: T[]; loading: boolean; error: string | null; refetch: () => void; isFromCache: boolean; lastUpdated: Date | undefined; }; export declare function useLiveQuery<T = any>(tableName: string, filter?: any): { data: T[]; loading: boolean; error: string | null; refetch: () => void; isFromCache: boolean; lastUpdated: Date | undefined; } | { data: T[]; error: string | null; updatedAt: Date | undefined; isFromCache: boolean; }; export declare function useMutation<T = any>(): { create: (tableName: string, data: T) => Promise<MutationResult>; insert: (tableName: string, data: T) => Promise<MutationResult>; update: (tableName: string, id: string, data: Partial<T>) => Promise<MutationResult>; upsert: (tableName: string, data: T & { id: string; }) => Promise<MutationResult>; delete: (tableName: string, id: string) => Promise<MutationResult>; loading: boolean; error: string | null; }; export declare function useSync(): { syncStatus: SyncStatus; sync: () => Promise<boolean>; startAutoSync: () => void; stopAutoSync: () => void; loading: boolean; error: string | null; isOnline: boolean; isSyncing: boolean; }; export declare function useNetworkStatus(): { isOnline: boolean; }; export { useDrizzleLiveQuery as useRawLiveQuery };