UNPKG

quickli

Version:

Easy-to-use Supabase client with automatic configuration and connection management

68 lines (56 loc) 2.33 kB
import { SupabaseClient as BaseClient, PostgrestResponse } from '@supabase/supabase-js'; interface ClientOptions { retries?: number; timeout?: number; pageSize?: number; } interface PaginationOptions { page?: number; pageSize?: number; orderBy?: string; ascending?: boolean; } interface PaginationResult<T> { data: T[]; pagination: { total: number; pageSize: number; page: number; totalPages: number; }; } declare class SupabaseClient { constructor(url?: string, key?: string, options?: ClientOptions); client: BaseClient; from<T = any>(table: string): { select: (...args: any[]) => Promise<PostgrestResponse<T>>; insert: (...args: any[]) => Promise<PostgrestResponse<T>>; update: (...args: any[]) => Promise<PostgrestResponse<T>>; delete: (...args: any[]) => Promise<PostgrestResponse<T>>; upsert: (...args: any[]) => Promise<PostgrestResponse<T>>; }; auth(): ReturnType<BaseClient['auth']>; storage(): ReturnType<BaseClient['storage']>; rpc<T = any>(fn: string, params?: object): Promise<PostgrestResponse<T>>; testConnection(): Promise<boolean>; hasRealtimeSupport(): Promise<boolean>; // Enhanced helper methods findOne<T = any>(table: string, query?: object): Promise<T>; findMany<T = any>(table: string, query?: object, options?: PaginationOptions): Promise<T[]>; createOne<T = any>(table: string, data: object): Promise<T>; createMany<T = any>(table: string, records: object[]): Promise<T[]>; updateOne<T = any>(table: string, query: object, data: object): Promise<T>; updateMany<T = any>(table: string, query: object, data: object): Promise<T[]>; deleteOne<T = any>(table: string, query: object): Promise<T>; deleteMany<T = any>(table: string, query: object): Promise<T[]>; // Pagination paginate<T = any>(table: string, query?: object, options?: PaginationOptions): Promise<PaginationResult<T>>; // Aggregation count(table: string, query?: object): Promise<number>; sum(table: string, column: string, query?: object): Promise<number>; average(table: string, column: string, query?: object): Promise<number>; // Advanced filtering search<T = any>(table: string, column: string, query: string, options?: object): Promise<T[]>; } declare const instance: SupabaseClient; export = instance | SupabaseClient;