UNPKG

rxdb

Version:

A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/

48 lines (41 loc) 1.37 kB
import type { ReplicationOptions, ReplicationPullOptions, ReplicationPushOptions } from '../../types'; import type { SupabaseClient } from '@supabase/supabase-js'; export type SupabasePullQueryBuilderParams = { query: ReturnType<SupabaseClient['from']>['select'] extends ( ...args: any[] ) => infer R ? R : never; lastPulledCheckpoint: SupabaseCheckpoint | undefined; batchSize: number; }; export type SupabasePullQueryBuilder<RxDocType> = ( params: SupabasePullQueryBuilderParams ) => SupabasePullQueryBuilderParams['query'] | void; export type SyncOptionsSupabase<RxDocType> = Omit< ReplicationOptions<RxDocType, SupabaseCheckpoint>, 'pull' | 'push' > & { client: SupabaseClient; tableName: string; /** * Modified field, default "_modified" */ modifiedField?: '_modified' | string; pull?: Omit<ReplicationPullOptions<RxDocType, SupabaseCheckpoint>, 'handler' | 'stream$'> & { /** * Allows modifying the PostgREST query before RxDB fetches remote changes. * You can return a new builder instance or mutate the provided one. */ queryBuilder?: SupabasePullQueryBuilder<RxDocType>; }; push?: Omit<ReplicationPushOptions<RxDocType>, 'handler'>; }; export type SupabaseCheckpoint = { id: string; modified: string; }