Skip to content

Commit c018e8f

Browse files
sweatybridgeyingw787
authored andcommitted
fix(typegen): handle missing public schema
Co-authored-by: yingw787 <[email protected]>
1 parent 0644475 commit c018e8f

File tree

2 files changed

+50
-46
lines changed

2 files changed

+50
-46
lines changed

src/server/templates/typescript.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -419,9 +419,11 @@ export type Database = {
419419
})}
420420
}
421421
422+
type PublicSchema = Database[Extract<keyof Database, "public">]
423+
422424
export type Tables<
423425
PublicTableNameOrOptions extends
424-
| keyof (Database["public"]["Tables"] & Database["public"]["Views"])
426+
| keyof (PublicSchema["Tables"] & PublicSchema["Views"])
425427
| { schema: keyof Database },
426428
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
427429
? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
@@ -434,19 +436,17 @@ export type Tables<
434436
}
435437
? R
436438
: never
437-
: PublicTableNameOrOptions extends keyof (Database["public"]["Tables"] &
438-
Database["public"]["Views"])
439-
? (Database["public"]["Tables"] &
440-
Database["public"]["Views"])[PublicTableNameOrOptions] extends {
441-
Row: infer R
442-
}
443-
? R
439+
: PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] & PublicSchema["Views"])
440+
? (PublicSchema["Tables"] & PublicSchema["Views"])[PublicTableNameOrOptions] extends {
441+
Row: infer R
442+
}
443+
? R
444+
: never
444445
: never
445-
: never
446446
447447
export type TablesInsert<
448448
PublicTableNameOrOptions extends
449-
| keyof Database["public"]["Tables"]
449+
| keyof PublicSchema["Tables"]
450450
| { schema: keyof Database },
451451
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
452452
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -457,8 +457,8 @@ export type TablesInsert<
457457
}
458458
? I
459459
: never
460-
: PublicTableNameOrOptions extends keyof Database["public"]["Tables"]
461-
? Database["public"]["Tables"][PublicTableNameOrOptions] extends {
460+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
461+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
462462
Insert: infer I
463463
}
464464
? I
@@ -467,7 +467,7 @@ export type TablesInsert<
467467
468468
export type TablesUpdate<
469469
PublicTableNameOrOptions extends
470-
| keyof Database["public"]["Tables"]
470+
| keyof PublicSchema["Tables"]
471471
| { schema: keyof Database },
472472
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
473473
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -478,8 +478,8 @@ export type TablesUpdate<
478478
}
479479
? U
480480
: never
481-
: PublicTableNameOrOptions extends keyof Database["public"]["Tables"]
482-
? Database["public"]["Tables"][PublicTableNameOrOptions] extends {
481+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
482+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
483483
Update: infer U
484484
}
485485
? U
@@ -488,15 +488,15 @@ export type TablesUpdate<
488488
489489
export type Enums<
490490
PublicEnumNameOrOptions extends
491-
| keyof Database["public"]["Enums"]
491+
| keyof PublicSchema["Enums"]
492492
| { schema: keyof Database },
493493
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
494494
? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
495495
: never = never
496496
> = PublicEnumNameOrOptions extends { schema: keyof Database }
497497
? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
498-
: PublicEnumNameOrOptions extends keyof Database["public"]["Enums"]
499-
? Database["public"]["Enums"][PublicEnumNameOrOptions]
498+
: PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
499+
? PublicSchema["Enums"][PublicEnumNameOrOptions]
500500
: never
501501
`
502502

test/server/typegen.ts

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,11 @@ test('typegen', async () => {
365365
}
366366
}
367367
368+
type PublicSchema = Database[Extract<keyof Database, "public">]
369+
368370
export type Tables<
369371
PublicTableNameOrOptions extends
370-
| keyof (Database["public"]["Tables"] & Database["public"]["Views"])
372+
| keyof (PublicSchema["Tables"] & PublicSchema["Views"])
371373
| { schema: keyof Database },
372374
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
373375
? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
@@ -380,10 +382,10 @@ test('typegen', async () => {
380382
}
381383
? R
382384
: never
383-
: PublicTableNameOrOptions extends keyof (Database["public"]["Tables"] &
384-
Database["public"]["Views"])
385-
? (Database["public"]["Tables"] &
386-
Database["public"]["Views"])[PublicTableNameOrOptions] extends {
385+
: PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] &
386+
PublicSchema["Views"])
387+
? (PublicSchema["Tables"] &
388+
PublicSchema["Views"])[PublicTableNameOrOptions] extends {
387389
Row: infer R
388390
}
389391
? R
@@ -392,7 +394,7 @@ test('typegen', async () => {
392394
393395
export type TablesInsert<
394396
PublicTableNameOrOptions extends
395-
| keyof Database["public"]["Tables"]
397+
| keyof PublicSchema["Tables"]
396398
| { schema: keyof Database },
397399
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
398400
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -403,8 +405,8 @@ test('typegen', async () => {
403405
}
404406
? I
405407
: never
406-
: PublicTableNameOrOptions extends keyof Database["public"]["Tables"]
407-
? Database["public"]["Tables"][PublicTableNameOrOptions] extends {
408+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
409+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
408410
Insert: infer I
409411
}
410412
? I
@@ -413,7 +415,7 @@ test('typegen', async () => {
413415
414416
export type TablesUpdate<
415417
PublicTableNameOrOptions extends
416-
| keyof Database["public"]["Tables"]
418+
| keyof PublicSchema["Tables"]
417419
| { schema: keyof Database },
418420
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
419421
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -424,8 +426,8 @@ test('typegen', async () => {
424426
}
425427
? U
426428
: never
427-
: PublicTableNameOrOptions extends keyof Database["public"]["Tables"]
428-
? Database["public"]["Tables"][PublicTableNameOrOptions] extends {
429+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
430+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
429431
Update: infer U
430432
}
431433
? U
@@ -434,15 +436,15 @@ test('typegen', async () => {
434436
435437
export type Enums<
436438
PublicEnumNameOrOptions extends
437-
| keyof Database["public"]["Enums"]
439+
| keyof PublicSchema["Enums"]
438440
| { schema: keyof Database },
439441
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
440442
? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
441443
: never = never,
442444
> = PublicEnumNameOrOptions extends { schema: keyof Database }
443445
? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
444-
: PublicEnumNameOrOptions extends keyof Database["public"]["Enums"]
445-
? Database["public"]["Enums"][PublicEnumNameOrOptions]
446+
: PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
447+
? PublicSchema["Enums"][PublicEnumNameOrOptions]
446448
: never
447449
"
448450
`)
@@ -829,9 +831,11 @@ test('typegen w/ one-to-one relationships', async () => {
829831
}
830832
}
831833
834+
type PublicSchema = Database[Extract<keyof Database, "public">]
835+
832836
export type Tables<
833837
PublicTableNameOrOptions extends
834-
| keyof (Database["public"]["Tables"] & Database["public"]["Views"])
838+
| keyof (PublicSchema["Tables"] & PublicSchema["Views"])
835839
| { schema: keyof Database },
836840
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
837841
? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
@@ -844,10 +848,10 @@ test('typegen w/ one-to-one relationships', async () => {
844848
}
845849
? R
846850
: never
847-
: PublicTableNameOrOptions extends keyof (Database["public"]["Tables"] &
848-
Database["public"]["Views"])
849-
? (Database["public"]["Tables"] &
850-
Database["public"]["Views"])[PublicTableNameOrOptions] extends {
851+
: PublicTableNameOrOptions extends keyof (PublicSchema["Tables"] &
852+
PublicSchema["Views"])
853+
? (PublicSchema["Tables"] &
854+
PublicSchema["Views"])[PublicTableNameOrOptions] extends {
851855
Row: infer R
852856
}
853857
? R
@@ -856,7 +860,7 @@ test('typegen w/ one-to-one relationships', async () => {
856860
857861
export type TablesInsert<
858862
PublicTableNameOrOptions extends
859-
| keyof Database["public"]["Tables"]
863+
| keyof PublicSchema["Tables"]
860864
| { schema: keyof Database },
861865
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
862866
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -867,8 +871,8 @@ test('typegen w/ one-to-one relationships', async () => {
867871
}
868872
? I
869873
: never
870-
: PublicTableNameOrOptions extends keyof Database["public"]["Tables"]
871-
? Database["public"]["Tables"][PublicTableNameOrOptions] extends {
874+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
875+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
872876
Insert: infer I
873877
}
874878
? I
@@ -877,7 +881,7 @@ test('typegen w/ one-to-one relationships', async () => {
877881
878882
export type TablesUpdate<
879883
PublicTableNameOrOptions extends
880-
| keyof Database["public"]["Tables"]
884+
| keyof PublicSchema["Tables"]
881885
| { schema: keyof Database },
882886
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
883887
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -888,8 +892,8 @@ test('typegen w/ one-to-one relationships', async () => {
888892
}
889893
? U
890894
: never
891-
: PublicTableNameOrOptions extends keyof Database["public"]["Tables"]
892-
? Database["public"]["Tables"][PublicTableNameOrOptions] extends {
895+
: PublicTableNameOrOptions extends keyof PublicSchema["Tables"]
896+
? PublicSchema["Tables"][PublicTableNameOrOptions] extends {
893897
Update: infer U
894898
}
895899
? U
@@ -898,15 +902,15 @@ test('typegen w/ one-to-one relationships', async () => {
898902
899903
export type Enums<
900904
PublicEnumNameOrOptions extends
901-
| keyof Database["public"]["Enums"]
905+
| keyof PublicSchema["Enums"]
902906
| { schema: keyof Database },
903907
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
904908
? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
905909
: never = never,
906910
> = PublicEnumNameOrOptions extends { schema: keyof Database }
907911
? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
908-
: PublicEnumNameOrOptions extends keyof Database["public"]["Enums"]
909-
? Database["public"]["Enums"][PublicEnumNameOrOptions]
912+
: PublicEnumNameOrOptions extends keyof PublicSchema["Enums"]
913+
? PublicSchema["Enums"][PublicEnumNameOrOptions]
910914
: never
911915
"
912916
`)

0 commit comments

Comments
 (0)