UNPKG

rxdb

Version:

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

29 lines (28 loc) 1.31 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; };