diff --git a/src/select-query-parser.ts b/src/select-query-parser.ts index 2e798e29..155b3247 100644 --- a/src/select-query-parser.ts +++ b/src/select-query-parser.ts @@ -267,6 +267,8 @@ type ConstructFieldDefinition< : Field extends { name: string; original: string } ? Field['original'] extends keyof Row ? { [K in Field['name']]: Row[Field['original']] } + : Field['original'] extends 'count' + ? { count: number } : SelectQueryError<`Referencing missing column \`${Field['original']}\``> : Record diff --git a/test/index.test-d.ts b/test/index.test-d.ts index 3bd61e23..a3194bf3 100644 --- a/test/index.test-d.ts +++ b/test/index.test-d.ts @@ -88,6 +88,15 @@ const postgrest = new PostgrestClient(REST_URL) expectType<{ message: string | null }>(data) } +// `count` in embedded resource +{ + const { data, error } = await postgrest.from('messages').select('message, users(count)').single() + if (error) { + throw new Error(error.message) + } + expectType<{ message: string | null; users: { count: number } | null }>(data) +} + // json accessor in select query { const { data, error } = await postgrest