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