File tree 2 files changed +14
-2
lines changed
2 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -31,8 +31,10 @@ type ResolveFilterValue<
31
31
Tables extends Record < string , GenericTable > ,
32
32
Row extends Record < string , unknown > ,
33
33
ColumnName extends string
34
- > = ColumnName extends `${infer RelationshipTable } .${infer RelationshipColumn } `
35
- ? ResolveFilterRelationshipValue < Tables , RelationshipTable , RelationshipColumn >
34
+ > = ColumnName extends `${infer RelationshipTable } .${infer Remainder } `
35
+ ? Remainder extends `${infer _ } .${infer _ } `
36
+ ? ResolveFilterValue < Tables , Row , Remainder >
37
+ : ResolveFilterRelationshipValue < Tables , RelationshipTable , Remainder >
36
38
: ColumnName extends keyof Row
37
39
? Row [ ColumnName ]
38
40
: never
Original file line number Diff line number Diff line change @@ -40,6 +40,16 @@ const postgrest = new PostgrestClient<Database>(REST_URL)
40
40
. select ( 'users!first_user(status)' )
41
41
. in ( 'users.status' , [ 'invalid' ] )
42
42
)
43
+ // Validate deeply nested embedded tables
44
+ expectError (
45
+ postgrest . from ( 'users' ) . select ( 'messages(channels(*))' ) . eq ( 'messages.channels.id' , 'invalid' )
46
+ )
47
+ expectError (
48
+ postgrest . from ( 'users' ) . select ( 'messages(channels(*))' ) . neq ( 'messages.channels.id' , 'invalid' )
49
+ )
50
+ expectError (
51
+ postgrest . from ( 'users' ) . select ( 'messages(channels(*))' ) . in ( 'messages.channels.id' , [ 'invalid' ] )
52
+ )
43
53
44
54
{
45
55
const { data, error } = await postgrest . from ( 'users' ) . select ( 'status' ) . eq ( 'status' , 'ONLINE' )
You can’t perform that action at this time.
0 commit comments