UNPKG

@powersync/react-native

Version:

PowerSync React Native SDK. Sync Postgres, MongoDB or MySQL with SQLite in your React Native app

42 lines (41 loc) 2.24 kB
import { BaseObserver, DBAdapter, DBAdapterListener, LockContext as PowerSyncLockContext, Transaction as PowerSyncTransaction, DBLockOptions, QueryResult } from '@powersync/common'; import type { QuickSQLiteConnection, LockContext as RNQSLockContext } from '@journeyapps/react-native-quick-sqlite'; /** * Adapter for React Native Quick SQLite */ export declare class RNQSDBAdapter extends BaseObserver<DBAdapterListener> implements DBAdapter { protected baseDB: QuickSQLiteConnection; name: string; getAll: <T>(sql: string, parameters?: any[]) => Promise<T[]>; getOptional: <T>(sql: string, parameters?: any[]) => Promise<T | null>; get: <T>(sql: string, parameters?: any[]) => Promise<T>; constructor(baseDB: QuickSQLiteConnection, name: string); close(): void; readLock<T>(fn: (tx: PowerSyncLockContext) => Promise<T>, options?: DBLockOptions): Promise<T>; readTransaction<T>(fn: (tx: PowerSyncTransaction) => Promise<T>, options?: DBLockOptions): Promise<T>; writeLock<T>(fn: (tx: PowerSyncLockContext) => Promise<T>, options?: DBLockOptions): Promise<T>; writeTransaction<T>(fn: (tx: PowerSyncTransaction) => Promise<T>, options?: DBLockOptions): Promise<T>; execute(query: string, params?: any[]): Promise<import("@journeyapps/react-native-quick-sqlite").QueryResult>; /** * 'executeRaw' is not implemented in RNQS, this falls back to 'execute'. */ executeRaw(query: string, params?: any[]): Promise<any[][]>; executeBatch(query: string, params?: any[][]): Promise<QueryResult>; generateContext<T extends RNQSLockContext>(ctx: T): T & { executeRaw: (sql: string, params?: any[]) => Promise<unknown[][]>; }; /** * This provides a top-level read only execute method which is executed inside a read-lock. * This is necessary since the high level `execute` method uses a write-lock under * the hood. Helper methods such as `get`, `getAll` and `getOptional` are read only, * and should use this method. */ private readOnlyExecute; /** * Adds DB get utils to lock contexts and transaction contexts * @param tx * @returns */ private generateDBHelpers; refreshSchema(): Promise<void>; }