UNPKG

@supabase-kit/react

Version:

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

110 lines (109 loc) 4.61 kB
export type ValidatedSchema<SchemaKey extends keyof D, D extends DatabaseTemp> = D[SchemaKey] extends { Tables: infer T; } ? T extends Record<string, any> ? T : never : D[SchemaKey] extends { Views: infer V; } ? V extends Record<string, any> ? V : never : never; export type TableRow<Schema extends BaseSchema, TableName extends keyof Schema['Tables']> = Schema['Tables'] extends Record<string, { Row: any; }> ? TableName extends keyof NonNullable<Schema['Tables']> ? NonNullable<Schema['Tables']>[TableName]['Row'] : never : never; export type ViewRow<Schema extends BaseSchema, ViewName extends keyof Schema['Views']> = Schema['Views'] extends Record<string, { Row: any; }> ? ViewName extends keyof NonNullable<Schema['Views']> ? NonNullable<Schema['Views']>[ViewName]['Row'] : never : never; export type BaseSchema = { Tables?: Record<string, { Row: Record<string, any>; }>; Views?: Record<string, { Row: Record<string, any>; }>; }; export type DatabaseTemp = { __InternalSupabase: { PostgrestVersion: string; }; public: BaseSchema; } & { [K in string as Exclude<K, keyof { __InternalSupabase: unknown; public: unknown; }>]: BaseSchema; }; 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 {};