11import PostgrestTransformBuilder from './PostgrestTransformBuilder'
2- import { GenericSchema , GenericTable } from './types'
2+ import { GenericSchema } from './types'
33
44type FilterOperator =
55 | 'eq'
@@ -31,28 +31,30 @@ type FilterOperator =
3131// assume that all tables have valid relationships to each other, despite
3232// nonexistent foreign keys.
3333type ResolveFilterValue <
34- Tables extends Record < string , GenericTable > ,
34+ Schema extends GenericSchema ,
3535 Row extends Record < string , unknown > ,
3636 ColumnName extends string
3737> = ColumnName extends `${infer RelationshipTable } .${infer Remainder } `
3838 ? Remainder extends `${infer _ } .${infer _ } `
39- ? ResolveFilterValue < Tables , Row , Remainder >
40- : ResolveFilterRelationshipValue < Tables , RelationshipTable , Remainder >
39+ ? ResolveFilterValue < Schema , Row , Remainder >
40+ : ResolveFilterRelationshipValue < Schema , RelationshipTable , Remainder >
4141 : ColumnName extends keyof Row
4242 ? Row [ ColumnName ]
4343 : never
4444
4545type ResolveFilterRelationshipValue <
46- Tables extends Record < string , GenericTable > ,
46+ Schema extends GenericSchema ,
4747 RelationshipTable extends string ,
4848 RelationshipColumn extends string
49- > = RelationshipTable extends keyof Tables
50- ? 'Row' extends keyof Tables [ RelationshipTable ]
51- ? RelationshipColumn extends keyof Tables [ RelationshipTable ] [ 'Row' ]
52- ? Tables [ RelationshipTable ] [ 'Row' ] [ RelationshipColumn ]
49+ > = Schema [ 'Tables' ] & Schema [ 'Views' ] extends infer TablesAndViews
50+ ? RelationshipTable extends keyof TablesAndViews
51+ ? 'Row' extends keyof TablesAndViews [ RelationshipTable ]
52+ ? RelationshipColumn extends keyof TablesAndViews [ RelationshipTable ] [ 'Row' ]
53+ ? TablesAndViews [ RelationshipTable ] [ 'Row' ] [ RelationshipColumn ]
54+ : unknown
5355 : unknown
5456 : unknown
55- : unknown
57+ : never
5658
5759export default class PostgrestFilterBuilder <
5860 Schema extends GenericSchema ,
@@ -71,9 +73,9 @@ export default class PostgrestFilterBuilder<
7173 */
7274 eq < ColumnName extends string > (
7375 column : ColumnName ,
74- value : ResolveFilterValue < Schema [ 'Tables' ] , Row , ColumnName > extends never
76+ value : ResolveFilterValue < Schema , Row , ColumnName > extends never
7577 ? NonNullable < unknown >
76- : NonNullable < ResolveFilterValue < Schema [ 'Tables' ] , Row , ColumnName > >
78+ : NonNullable < ResolveFilterValue < Schema , Row , ColumnName > >
7779 ) : this {
7880 this . url . searchParams . append ( column , `eq.${ value } ` )
7981 return this
@@ -87,9 +89,9 @@ export default class PostgrestFilterBuilder<
8789 */
8890 neq < ColumnName extends string > (
8991 column : ColumnName ,
90- value : ResolveFilterValue < Schema [ 'Tables' ] , Row , ColumnName > extends never
92+ value : ResolveFilterValue < Schema , Row , ColumnName > extends never
9193 ? unknown
92- : ResolveFilterValue < Schema [ 'Tables' ] , Row , ColumnName >
94+ : ResolveFilterValue < Schema , Row , ColumnName >
9395 ) : this {
9496 this . url . searchParams . append ( column , `neq.${ value } ` )
9597 return this
@@ -267,9 +269,9 @@ export default class PostgrestFilterBuilder<
267269 */
268270 in < ColumnName extends string > (
269271 column : ColumnName ,
270- values : ResolveFilterValue < Schema [ 'Tables' ] , Row , ColumnName > extends never
272+ values : ResolveFilterValue < Schema , Row , ColumnName > extends never
271273 ? unknown [ ]
272- : ReadonlyArray < ResolveFilterValue < Schema [ 'Tables' ] , Row , ColumnName > >
274+ : ReadonlyArray < ResolveFilterValue < Schema , Row , ColumnName > >
273275 ) : this {
274276 const cleanedValues = Array . from ( new Set ( values ) )
275277 . map ( ( s ) => {
0 commit comments