-
-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ParserError "Unexpected input: .sum()" when using aggregate functions with TypeScript #523
Comments
Moving this issue to Postgrest-js repo. Issue is similar to #447 which was fixed recently |
A brief update after upgrading Error in TypeScript type is now as following for the same original code: const data: SelectQueryError<"Referencing missing column `sum`">[] | null Using @bnjmnt4n I just had a look into your fix for the similar issue with |
@bnjmnt4n I added test cases which currently fail at compile-time. |
@stefan-girlich thanks for providing the examples; I'm really busy now so I can probably look at them next week only. |
In case it helps anyone, here's a generic way to override the faulty type: import fail from '@/utils/fail'
import { createClient } from '@/utils/supabase/server'
type FixSupabaseAggregateType<
T extends readonly any[] | null,
K extends keyof R,
R extends Record<K, any>,
> = Array<Omit<NonNullable<T>[number], K> & R>
export const fetchSomeData = async () => {
const supabase = createClient()
const { data, error } = await supabase
.from('some_table')
.select(
`
some_prop,
other_table(aggregated_prop:nested_prop.sum())
`
)
if (error) fail(error)
type Result = FixSupabaseAggregateType<
typeof data,
'other_table',
{
other_table: { aggregated_prop: number }
}
>
return data as unknown as Result
} @bnjmnt4n Would you know if a fix is scheduled already? Thanks! |
Bug report
Describe the bug
When I use aggregate functions, the inferred TypeScript data type will always depict an error, requiring me to use casts to
any
.To Reproduce
The inferred type for
data
seen in my VS Code is:ParserError<"Unexpected input: .sum(),\n ...other_things(id, name, color)\n ">[] | null
Inference works fine when not using aggregate functions.
Re-generating TS types via
supabase gen types typescript
does not fix the issue.Expected behavior
Types should be inferred correctly without an error.
System information
The text was updated successfully, but these errors were encountered: