-
-
Notifications
You must be signed in to change notification settings - Fork 174
chore(types): make types retrocompatible to typescript 4.5.5 #571
Conversation
|
@avallete can you limit the change to |
I'll try but:
https://github.com/supabase/postgrest-js/pull/571/files#diff-5e58fb7db093dc508e6abb63dd5488067ce801a1abbcb5a50644050d106ff1edL174-R179
|
| export type FindJoinTableRelationship< | ||
| Schema extends GenericSchema, | ||
| CurrentTableOrView extends keyof TablesAndViews<Schema> & string, | ||
| FieldName extends string | ||
| > = ResolveJoinTableRelationship<Schema, CurrentTableOrView, FieldName> extends infer Result | ||
| ? [Result] extends [never] | ||
| ? false | ||
| : Result | ||
| : never |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make it consistent with the other FindXXRelationship that return a plain false if no relationship were found instead of never.
| msgs: { | ||
| id: number | ||
| message_details: SelectQueryError<`Could not embed because more than one relationship was found for 'messages' and '${string}' you need to hint the column with messages!<columnName> ?`> | ||
| message_details: SelectQueryError<'could not find the relation between messages and message_details'> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one was actually invalid given the database definition. I added a runtime test for it and adapted the expected error message accordingly.
|
I've rebased this one over the correct branch so the diff should be much more focus on the actual changes for 4.5.5 compatibility. Also reverted some noise with the never replacement / new errors that wasn't necessary to the conversion. Note that this PR should be merged after the one it base itself of: #569 |
…s-retrocompatible-to-4-5-5
|
🎉 This PR is included in version 1.17.3 🎉 The release is available on: Your semantic-release bot 📦🚀 |
What kind of change does this PR introduce?
One of the probable reason causing the number of issues we had with the new inference is probably the use in our tests of typescript
~4.7, insupabase-jswe can see the version of typescript is4.5.5.This PR is here to reduce the migration friction by allowing the new parser to be retro-compatible with lower typescript version, down to 4.5.5 (I tested down to
4.3.3).The main change across all was to get rid of the new convenient
infer X extends Ysyntax only available in typescript 4.7 and higher.What is the current behavior?
Please link any relevant issues here.
What is the new behavior?
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.