UNPKG

@rikishi/watermelondb

Version:

Build powerful React Native and React web apps that scale from hundreds to tens of thousands of records and remain fast

67 lines (48 loc) 1.72 kB
declare module '@rikishi/watermelondb/adapters/sqlite' { import { AppSchema, DatabaseAdapter, Model, Query, RecordId, TableName, } from '@rikishi/watermelondb' import { BatchOperation, CachedFindResult, CachedQueryResult, } from '@rikishi/watermelondb/adapters/type' import { SchemaMigrations } from '@rikishi/watermelondb/Schema/migrations' export type SQL = string export type SQLiteArg = string | boolean | number | null export type SQLiteQuery = [SQL, SQLiteArg[]] export type MigrationEvents = { onSuccess: () => void onStart: () => void onError: (error: Error) => void } export interface SQLiteAdapterOptions { dbName?: string migrations?: SchemaMigrations schema: AppSchema jsi?: boolean migrationEvents?: MigrationEvents onSetUpError?: (error: Error) => void usesExclusiveLocking?: boolean } export default class SQLiteAdapter implements DatabaseAdapter { schema: AppSchema constructor(options: SQLiteAdapterOptions) batch(operations: BatchOperation[]): Promise<void> count<T extends Model>(query: Query<T>): Promise<number> destroyDeletedRecords(tableName: TableName<any>, recordIds: RecordId[]): Promise<void> find(table: TableName<any>, id: RecordId): Promise<CachedFindResult> getDeletedRecords(tableName: TableName<any>): Promise<RecordId[]> getLocal(key: string): Promise<string | null> query<T extends Model>(query: Query<T>): Promise<CachedQueryResult> removeLocal(key: string): Promise<void> setLocal(key: string, value: string): Promise<void> unsafeClearCachedRecords(): Promise<void> unsafeResetDatabase(): Promise<void> } }