Skip to content

Commit 5ea5163

Browse files
authored
feat: query parser: add types for count (#498)
Closes #447, #479.
1 parent 14910bf commit 5ea5163

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

src/select-query-parser.ts

+2
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,8 @@ type ConstructFieldDefinition<
267267
: Field extends { name: string; original: string }
268268
? Field['original'] extends keyof Row
269269
? { [K in Field['name']]: Row[Field['original']] }
270+
: Field['original'] extends 'count'
271+
? { count: number }
270272
: SelectQueryError<`Referencing missing column \`${Field['original']}\``>
271273
: Record<string, unknown>
272274

test/index.test-d.ts

+9
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ const postgrest = new PostgrestClient<Database>(REST_URL)
8888
expectType<{ message: string | null }>(data)
8989
}
9090

91+
// `count` in embedded resource
92+
{
93+
const { data, error } = await postgrest.from('messages').select('message, users(count)').single()
94+
if (error) {
95+
throw new Error(error.message)
96+
}
97+
expectType<{ message: string | null; users: { count: number } | null }>(data)
98+
}
99+
91100
// json accessor in select query
92101
{
93102
const { data, error } = await postgrest

0 commit comments

Comments
 (0)