UNPKG

@supabase-kit/react

Version:

> Hooks by management data from supabase and fetch data by react.

90 lines (89 loc) 3.59 kB
export type DatabaseTemp = { public: { Tables: Record<string, { Row: Record<string, any>; }>; Views: Record<string, { Row: Record<string, any>; }>; }; }; export type OrWhere = string[]; export type EqWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, string | number | boolean>>; export type InWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, (string | number)[]>>; export type FilterWhere<T> = Record<T extends Array<any> ? keyof T[0] : keyof T, [ operator: `${"" | "not."}${FilterOperator}`, value: string ]>; export type gtWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, T[keyof T]>>; export type isWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, T[keyof T]>>; export type matchWhere<T> = Partial<T>; export type likeWhere<T> = [T extends Array<any> ? keyof T[0] : keyof T, string]; export type containsWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, string[]>>; export type rangeWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, string>>; export type overlapsWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, string | string[]>>; export type textSearchWhereConfig = { text: string; options?: { config?: string; type?: "plain" | "phrase" | "websearch"; }; }; export type textSearchWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, textSearchWhereConfig>>; export type orderWhere<T> = Partial<Record<T extends Array<any> ? keyof T[0] : keyof T, { ascending?: boolean; nullsFirst?: boolean; foreignTable?: string; referencedTable?: string; }>>; export type baseRangeWhere = { from: number; to: number; options?: { foreignTable?: string; referencedTable?: string; }; }; export type FilterOperator = "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "like" | "ilike" | "is" | "in" | "cs" | "cd" | "sl" | "sr" | "nxl" | "nxr" | "adj" | "ov" | "fts" | "plfts" | "phfts" | "wfts"; type PublicSchema<D extends DatabaseTemp> = D[Extract<keyof D, "public">] & any; export type PublicSchemaKeys<D extends DatabaseTemp> = keyof (PublicSchema<D>["Tables"] & PublicSchema<D>["Views"]) | { schema: keyof D; }; export type TableName<D extends DatabaseTemp, P extends PublicSchemaKeys<D>, T extends P extends { schema: keyof D; } ? keyof (D["public"]["Tables"] & D["public"]["Views"]) : never = never> = T; export type Tables<D extends DatabaseTemp, P extends PublicSchemaKeys<D>, T extends TableName<D, P>> = (D["public"]["Tables"] & D["public"]["Views"])[T] extends { Row: infer R; } ? R : never; export type SupabaseQueryResult<T> = { payload: T; count: number; }; export type Where<V> = { eq?: EqWhere<V>; neq?: EqWhere<V>; gt?: gtWhere<V>; gte?: gtWhere<V>; lt?: gtWhere<V>; lte?: gtWhere<V>; is?: isWhere<V>; in?: InWhere<V>; or?: OrWhere; not?: FilterWhere<V>; filter?: FilterWhere<V>; match?: matchWhere<V>; like?: likeWhere<V>; ilike?: likeWhere<V>; contains?: containsWhere<V>; containedBy?: containsWhere<V>; rangeGt?: rangeWhere<V>; rangeGte?: rangeWhere<V>; rangeLt?: rangeWhere<V>; rangeLte?: rangeWhere<V>; rangeAdjacent?: rangeWhere<V>; overlaps?: overlapsWhere<V>; textSearch?: textSearchWhere<V>; }; export type WhereKeys = keyof Where<any>; export type WhereBasicKeys = keyof Omit<Where<any>, "or" | "filter" | "match" | "textSearch" | "not">; export {};