@supabase-kit/react
Version:
> Hooks by management data from supabase and fetch data by react.
49 lines (48 loc) • 4.43 kB
TypeScript
import { PostgrestError, SupabaseClient } from '@supabase/supabase-js';
import { GenericSchema } from '@supabase/supabase-js/dist/module/lib/types';
import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
import { DatabaseTemp, SupabaseQueryResult, TableRow, ViewRow } from './types';
import { SupabaseInfoniteQueryConfig } from './types.infonite';
import { SupabaseQueryConfig } from './types.query';
export declare const createSupabaseQuery: <D extends DatabaseTemp, SchemaName extends string & keyof D = "public" extends keyof D ? "public" : string & keyof D, Schema extends GenericSchema = D[SchemaName] extends GenericSchema ? D[SchemaName] : any>(client: SupabaseClient<D, SchemaName, Schema>) => {
useSupaInfiniteQuery: <S extends keyof D, T extends keyof D[S]["Tables"] & keyof D[S]["Views"] & string>({ table, schema, column, options, enabled, count, ...configObj }: SupabaseInfoniteQueryConfig<D> & {
table: T;
}) => import("@tanstack/react-query").DefinedUseInfiniteQueryResult<import("@tanstack/react-query").InfiniteData<SupabaseQueryResult<TableRow<D[S], T>[]>, unknown>, PostgrestError>;
useSupaQuery: {
<T_1 extends keyof D[S]["Tables"] | keyof D[S]["Views"], S extends keyof D = "public">(config: SupabaseQueryConfig<D, S> & {
table: T_1;
single: true;
}): UseQueryResult<SupabaseQueryResult<TableRow<D[S], T_1>>, PostgrestError>;
<T_1 extends keyof D[S_1]["Tables"] | keyof D[S_1]["Views"], S_1 extends keyof D = "public">(config: SupabaseQueryConfig<D, S_1> & {
table: T_1;
single?: false;
}): UseQueryResult<SupabaseQueryResult<TableRow<D[S_1], T_1>[]>, PostgrestError>;
};
QueryBuilder: <D_1 extends DatabaseTemp, S_2 extends keyof D_1>({ where, ...options }: {
enabled?: boolean | undefined;
schema?: S_2 | undefined;
where?: import("./types").Where<(TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]>) | (TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]>)[]> | undefined;
single?: boolean | undefined;
maybeSingle?: boolean | undefined;
limit?: number | undefined;
order?: Partial<Record<(TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> extends infer T_1 ? T_1 extends TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> ? T_1 extends any[] ? keyof T_1[0] : keyof T_1 : never : never) | keyof TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> | keyof ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]>, {
ascending?: boolean;
nullsFirst?: boolean;
foreignTable?: string;
referencedTable?: string;
}>> | undefined;
range?: (import("./types").baseRangeWhere | import("./types").baseRangeWhere[]) | undefined;
csv?: boolean | undefined;
explain?: {
analyze?: boolean;
verbose?: boolean;
settings?: boolean;
buffers?: boolean;
wal?: boolean;
format?: "json" | "text";
} | undefined;
options?: (Omit<UseQueryOptions<SupabaseQueryResult<(TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]>) | (TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]>)[]>, PostgrestError, SupabaseQueryResult<(TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]>) | (TableRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]> & ViewRow<D_1[S_2], keyof D_1[S_2]["Tables"] | keyof D_1[S_2]["Views"]>)[]>, readonly unknown[]>, "queryKey" | "queryFn"> & {
queryKey?: string[];
}) | undefined;
}, Query: import("@supabase/postgrest-js").PostgrestFilterBuilder<any, any, any>) => import("@supabase/postgrest-js").PostgrestFilterBuilder<any, any, any, unknown, unknown>;
};