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

46 lines (34 loc) 1.41 kB
declare module '@rikishi/watermelondb/Database' { import { AppSchema, CollectionMap, DatabaseAdapter, Model, TableName, Collection, } from '@rikishi/watermelondb' import { CollectionChangeSet } from '@rikishi/watermelondb/Collection' import { Class } from '@rikishi/watermelondb/utils/common' import { Observable } from 'rxjs' interface ReaderInterface { callReader<T>(work: () => Promise<T>): Promise<T> } interface WriterInterface extends ReaderInterface { callWriter<T>(work: () => Promise<T>): Promise<T> batch(...records: (Model | null | void | false | Promise<void>)[]): Promise<void> } export default class Database { public adapter: DatabaseAdapter public schema: AppSchema public collections: CollectionMap public constructor(options: { adapter: DatabaseAdapter; modelClasses: Class<Model>[] }) public batch(...records: (Model | null | void | false | Promise<void>)[]): Promise<void> public write<T>(work: (WriterInterface) => Promise<T>, description?: string): Promise<T> public read<T>(work: (ReaderInterface) => Promise<T>, description?: string): Promise<T> public withChangesForTables( tables: Array<TableName<any>>, ): Observable<CollectionChangeSet<any> | null> public unsafeResetDatabase(): Promise<void> public get<T extends Model>(tableName: TableName<T>): Collection<T> } }