Skip to content

Commit 178049e

Browse files
committed
feat: query parser: add types for count
Closes #447, #479.
1 parent c9cebf8 commit 178049e

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/select-query-parser.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ type ConstructFieldDefinition<
254254
: Field extends { name: string; original: string }
255255
? Field['original'] extends keyof Row
256256
? { [K in Field['name']]: Row[Field['original']] }
257+
: Field['original'] extends 'count'
258+
? { count: number }
257259
: SelectQueryError<`Referencing missing column \`${Field['original']}\``>
258260
: Record<string, unknown>
259261

test/index.test-d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,16 @@ const postgrest = new PostgrestClient<Database>(REST_URL)
5353
expectError(postgrest.from('updatable_view').update({ non_updatable_column: 0 }))
5454
}
5555

56+
// `count` in embedded resource
57+
{
58+
const { data, error } = await postgrest.from('messages').select('message, users(count)').single()
59+
if (error) {
60+
throw new Error(error.message)
61+
}
62+
// TODO: more accurate type with correct cardinality.
63+
expectType<{ message: string | null; users: { count: number } | null }>(data)
64+
}
65+
5666
// json accessor in select query
5767
{
5868
const { data, error } = await postgrest

0 commit comments

Comments
 (0)