UNPKG

@dataql/react-native

Version:

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

50 lines (49 loc) 2.37 kB
import { BaseDataQLClient, SyncConfig, SyncStatus, CRUDResult } from "@dataql/core"; import { OfflineCacheManager } from "./cache/OfflineCacheManager"; import { SyncManager } from "./sync/SyncManager"; import type { DataQLReactNativeConfig, CustomRequestConnection, WorkerBinding, SyncConfig as ReactNativeSyncConfig } from "./types"; export declare class DataQLClient extends BaseDataQLClient { private dbClient; private cacheManager; private syncManager; private reactNativeConfig; constructor(config: DataQLReactNativeConfig); initializeStorage(): Promise<boolean>; storeDataLocally<T>(tableName: string, data: T): Promise<CRUDResult<T>>; retrieveDataLocally<T>(tableName: string, filter?: any): Promise<T[]>; updateDataLocally<T>(tableName: string, id: string, data: Partial<T>): Promise<CRUDResult<T>>; deleteDataLocally(tableName: string, id: string): Promise<CRUDResult>; syncWithServer(): Promise<boolean>; getStoredSyncStatus(): Promise<SyncStatus>; getDatabase(): import("drizzle-orm/expo-sqlite").ExpoSQLiteDatabase<Record<string, unknown>> & { $client: import("expo-sqlite").SQLiteDatabase; }; /** @deprecated Use create() instead */ createOffline<T>(tableName: string, data: T): Promise<CRUDResult<T>>; /** @deprecated Use update() instead */ updateOffline<T>(tableName: string, id: string, data: Partial<T>): Promise<CRUDResult<T>>; /** @deprecated Use delete() instead */ deleteOffline(tableName: string, id: string): Promise<CRUDResult<any>>; /** @deprecated Use query() instead */ queryOffline<T>(tableName: string, filter?: any): Promise<T[]>; startAutoSync(): void; stopAutoSync(): void; getSyncManager(): SyncManager; getCacheManager(): OfflineCacheManager; isOnline(): boolean; updateSyncConfig(newConfig: Partial<SyncConfig>): void; setCustomConnection(customConnection: CustomRequestConnection): void; setWorkerBinding(workerBinding: WorkerBinding): void; clearCustomConnection(): void; destroy(): Promise<void>; getReactNativeConfig(): { schemas: Record<string, any>; appToken?: string; databaseName?: string; syncConfig?: ReactNativeSyncConfig; enableChangeListener?: boolean; debug?: boolean; env?: "dev" | "prod"; devPrefix?: string; }; }