@@ -21,8 +21,10 @@ export const apply = async ({
21
21
functions,
22
22
types,
23
23
detectOneToOneRelationships,
24
+ postgrestVersion,
24
25
} : GeneratorMetadata & {
25
26
detectOneToOneRelationships : boolean
27
+ postgrestVersion ?: string
26
28
} ) : Promise < string > => {
27
29
const columnsByTableId = Object . fromEntries < PostgresColumn [ ] > (
28
30
[ ...tables , ...foreignTables , ...views , ...materializedViews ] . map ( ( t ) => [ t . id , [ ] ] )
@@ -32,10 +34,19 @@ export const apply = async ({
32
34
. sort ( ( { name : a } , { name : b } ) => a . localeCompare ( b ) )
33
35
. forEach ( ( c ) => columnsByTableId [ c . table_id ] . push ( c ) )
34
36
37
+ const internal_supabase_schema = postgrestVersion
38
+ ? `// Allows to automatically instanciate createClient with right options
39
+ // instead of createClient<Database, { PostgrestVersion: 'XX' }>(URL, KEY)
40
+ __InternalSupabase: {
41
+ PostgrestVersion: '${ postgrestVersion } '
42
+ }`
43
+ : ''
44
+
35
45
let output = `
36
46
export type Json = string | number | boolean | null | { [key: string]: Json | undefined } | Json[]
37
47
38
48
export type Database = {
49
+ ${ internal_supabase_schema }
39
50
${ schemas
40
51
. sort ( ( { name : a } , { name : b } ) => a . localeCompare ( b ) )
41
52
. map ( ( schema ) => {
@@ -433,110 +444,110 @@ export type Database = {
433
444
} ) }
434
445
}
435
446
436
- type DefaultSchema = Database[Extract<keyof Database, ${ JSON . stringify ( GENERATE_TYPES_DEFAULT_SCHEMA ) } >]
447
+ type DatabaseWithoutInternals = Omit<Database, '__InternalSupabase'>
448
+
449
+ type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, ${ JSON . stringify ( GENERATE_TYPES_DEFAULT_SCHEMA ) } >]
437
450
438
451
export type Tables<
439
452
DefaultSchemaTableNameOrOptions extends
440
453
| keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
441
- | { schema: keyof Database },
454
+ | { schema: keyof DatabaseWithoutInternals },
442
455
TableName extends DefaultSchemaTableNameOrOptions extends {
443
- schema: keyof Database
456
+ schema: keyof DatabaseWithoutInternals
444
457
}
445
- ? keyof (Database [DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
446
- Database [DefaultSchemaTableNameOrOptions["schema"]]["Views"])
447
- : never = never,
448
- > = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
449
- ? (Database [DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
450
- Database [DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
458
+ ? keyof (DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
459
+ DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Views"])
460
+ : never = never
461
+ > = DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals }
462
+ ? (DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
463
+ DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
451
464
Row: infer R
452
465
}
453
466
? R
454
467
: never
455
- : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] &
456
- DefaultSchema["Views"])
457
- ? (DefaultSchema["Tables"] &
458
- DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
459
- Row: infer R
460
- }
461
- ? R
462
- : never
468
+ : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
469
+ ? (DefaultSchema["Tables"] & DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
470
+ Row: infer R
471
+ }
472
+ ? R
463
473
: never
474
+ : never
464
475
465
476
export type TablesInsert<
466
477
DefaultSchemaTableNameOrOptions extends
467
478
| keyof DefaultSchema["Tables"]
468
- | { schema: keyof Database },
479
+ | { schema: keyof DatabaseWithoutInternals },
469
480
TableName extends DefaultSchemaTableNameOrOptions extends {
470
- schema: keyof Database
481
+ schema: keyof DatabaseWithoutInternals
471
482
}
472
- ? keyof Database [DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
473
- : never = never,
474
- > = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
475
- ? Database [DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
483
+ ? keyof DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
484
+ : never = never
485
+ > = DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals }
486
+ ? DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
476
487
Insert: infer I
477
488
}
478
489
? I
479
490
: never
480
491
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
481
- ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
482
- Insert: infer I
483
- }
484
- ? I
485
- : never
492
+ ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
493
+ Insert: infer I
494
+ }
495
+ ? I
486
496
: never
497
+ : never
487
498
488
499
export type TablesUpdate<
489
500
DefaultSchemaTableNameOrOptions extends
490
501
| keyof DefaultSchema["Tables"]
491
- | { schema: keyof Database },
502
+ | { schema: keyof DatabaseWithoutInternals },
492
503
TableName extends DefaultSchemaTableNameOrOptions extends {
493
- schema: keyof Database
504
+ schema: keyof DatabaseWithoutInternals
494
505
}
495
- ? keyof Database [DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
496
- : never = never,
497
- > = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
498
- ? Database [DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
506
+ ? keyof DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
507
+ : never = never
508
+ > = DefaultSchemaTableNameOrOptions extends { schema: keyof DatabaseWithoutInternals }
509
+ ? DatabaseWithoutInternals [DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
499
510
Update: infer U
500
511
}
501
512
? U
502
513
: never
503
514
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
504
- ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
505
- Update: infer U
506
- }
507
- ? U
508
- : never
515
+ ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
516
+ Update: infer U
517
+ }
518
+ ? U
509
519
: never
520
+ : never
510
521
511
522
export type Enums<
512
523
DefaultSchemaEnumNameOrOptions extends
513
524
| keyof DefaultSchema["Enums"]
514
- | { schema: keyof Database },
525
+ | { schema: keyof DatabaseWithoutInternals },
515
526
EnumName extends DefaultSchemaEnumNameOrOptions extends {
516
- schema: keyof Database
527
+ schema: keyof DatabaseWithoutInternals
517
528
}
518
- ? keyof Database [DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
519
- : never = never,
520
- > = DefaultSchemaEnumNameOrOptions extends { schema: keyof Database }
521
- ? Database [DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
529
+ ? keyof DatabaseWithoutInternals [DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
530
+ : never = never
531
+ > = DefaultSchemaEnumNameOrOptions extends { schema: keyof DatabaseWithoutInternals }
532
+ ? DatabaseWithoutInternals [DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
522
533
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
523
- ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
524
- : never
534
+ ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
535
+ : never
525
536
526
537
export type CompositeTypes<
527
538
PublicCompositeTypeNameOrOptions extends
528
539
| keyof DefaultSchema["CompositeTypes"]
529
- | { schema: keyof Database },
540
+ | { schema: keyof DatabaseWithoutInternals },
530
541
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
531
- schema: keyof Database
542
+ schema: keyof DatabaseWithoutInternals
532
543
}
533
- ? keyof Database [PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
534
- : never = never,
535
- > = PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
536
- ? Database [PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
544
+ ? keyof DatabaseWithoutInternals [PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
545
+ : never = never
546
+ > = PublicCompositeTypeNameOrOptions extends { schema: keyof DatabaseWithoutInternals }
547
+ ? DatabaseWithoutInternals [PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
537
548
: PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
538
- ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
539
- : never
549
+ ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
550
+ : never
540
551
541
552
export const Constants = {
542
553
${ schemas
0 commit comments