@@ -120,7 +120,7 @@ type SelectQueryFromTableResult<
120120}
121121
122122{
123- type SelectQueryFromTableResult <
123+ type SelectQueryFromPersonalTableResult <
124124 TableName extends keyof Database [ 'personal' ] [ 'Tables' ] ,
125125 Q extends string
126126 > = GetResult <
@@ -130,22 +130,38 @@ type SelectQueryFromTableResult<
130130 Database [ 'personal' ] [ 'Tables' ] [ TableName ] [ 'Relationships' ] ,
131131 Q
132132 >
133-
134- let result : SelectQueryFromTableResult < 'users' , `data->bar->baz, data->en, data->bar`>
135- let expected : {
136- baz : number
137- en : 'ONE' | 'TWO' | 'THREE'
138- bar : {
133+ // Should work with Json object accessor
134+ {
135+ let result : SelectQueryFromPersonalTableResult < 'users' , `data->bar->baz, data->en, data->bar`>
136+ let expected : {
139137 baz : number
138+ en : 'ONE' | 'TWO' | 'THREE'
139+ bar : {
140+ baz : number
141+ }
140142 }
143+ expectType < TypeEqual < typeof result , typeof expected > > ( true )
141144 }
142- expectType < TypeEqual < typeof result , typeof expected > > ( true )
143-
144- let result2 : SelectQueryFromTableResult < 'users' , `data->bar->>baz, data->>en, data->>bar`>
145- let expected2 : {
146- baz : string
147- en : 'ONE' | 'TWO' | 'THREE'
148- bar : string
145+ // Should work with Json string accessor
146+ {
147+ let result : SelectQueryFromPersonalTableResult <
148+ 'users' ,
149+ `data->bar->>baz, data->>en, data->>bar`
150+ >
151+ let expected : {
152+ baz : string
153+ en : 'ONE' | 'TWO' | 'THREE'
154+ bar : string
155+ }
156+ expectType < TypeEqual < typeof result , typeof expected > > ( true )
157+ }
158+ // Should fallback to defaults if unknown properties are mentionned
159+ {
160+ let result : SelectQueryFromPersonalTableResult < 'users' , `data->bar->>nope, data->neither`>
161+ let expected : {
162+ nope : string
163+ neither : Json
164+ }
165+ expectType < TypeEqual < typeof result , typeof expected > > ( true )
149166 }
150- expectType < TypeEqual < typeof result2 , typeof expected2 > > ( true )
151167}
0 commit comments