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

48 lines (35 loc) 1.75 kB
declare module '@rikishi/watermelondb/adapters/type' { import { AppSchema, Model, Query, RawRecord, RecordId, TableName } from '@rikishi/watermelondb' export type CachedFindResult = RecordId | (RawRecord | void) export type CachedQueryResult = Array<RecordId | RawRecord> export type BatchOperation = | ['create', Model] | ['update', Model] | ['markAsDeleted', Model] | ['destroyPermanently', Model] export interface DatabaseAdapter { schema: AppSchema // Fetches given (one) record or null. Should not send raw object if already cached in JS find(table: TableName<any>, id: RecordId): Promise<CachedFindResult> // Fetches matching records. Should not send raw object if already cached in JS query<T extends Model>(query: Query<T>): Promise<CachedQueryResult> // Counts matching records count<T extends Model>(query: Query<T>): Promise<number> // Executes multiple prepared operations batch(operations: BatchOperation[]): Promise<void> // Return marked as deleted records getDeletedRecords(tableName: TableName<any>): Promise<RecordId[]> // Destroy deleted records from sync destroyDeletedRecords(tableName: TableName<any>, recordIds: RecordId[]): Promise<void> // Destroys the whole database, its schema, indexes, everything. unsafeResetDatabase(): Promise<void> // Fetches string value from local storage getLocal(key: string): Promise<string | null> // Sets string value to a local storage key setLocal(key: string, value: string): Promise<void> // Removes key from local storage removeLocal(key: string): Promise<void> // Do not use — only for testing purposes unsafeClearCachedRecords(): Promise<void> } }