UNPKG

@dataql/react-native

Version:

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

71 lines (70 loc) 3.67 kB
import { BaseDataQLClient, SyncConfig, SyncStatus, CRUDResult } from "@dataql/core"; import { OfflineCacheManager } from "./cache/OfflineCacheManager"; import { SyncManager } from "./sync/SyncManager"; import type { DataQLReactNativeConfig, CustomRequestConnection, WorkerBinding, InternalConnectionConfig, SyncConfig as ReactNativeSyncConfig } from "./types"; declare class ReactNativeInternalMongoClient { private config; private connectionUrl; constructor(config: InternalConnectionConfig); create<T>(collection: string, data: T): Promise<CRUDResult<T>>; read<T>(collection: string, filter?: any): Promise<T[]>; update<T>(collection: string, id: string, data: Partial<T>): Promise<CRUDResult<T>>; delete(collection: string, id: string): Promise<CRUDResult>; } export declare class DataQLClient extends BaseDataQLClient { private dbClient; private cacheManager; private syncManager; private reactNativeConfig; private internalMongoClient?; constructor(config: DataQLReactNativeConfig); protected createViaInternalConnection<T>(tableName: string, data: T): Promise<CRUDResult<T>>; protected readViaInternalConnection<T>(tableName: string, filter?: any): Promise<T[]>; protected updateViaInternalConnection<T>(tableName: string, id: string, data: Partial<T>): Promise<CRUDResult<T>>; protected deleteViaInternalConnection(tableName: string, id: string): Promise<CRUDResult>; 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; setInternalConnection(internalConnection: InternalConnectionConfig): void; clearCustomConnection(): void; clearInternalConnection(): void; destroy(): Promise<void>; getReactNativeConfig(): { schemas: Record<string, any>; appToken?: string; databaseName?: string; database?: import("./types").DatabaseConfig; syncConfig?: ReactNativeSyncConfig; enableChangeListener?: boolean; debug?: boolean; env?: "development" | "staging" | "production" | "dev" | "prod"; devPrefix?: string; internalConnection?: InternalConnectionConfig; }; getInternalMongoClient(): ReactNativeInternalMongoClient | undefined; testInternalConnection(): Promise<boolean>; } export {};