@@ -21,8 +21,10 @@ export const apply = async ({
2121 functions,
2222 types,
2323 detectOneToOneRelationships,
24+ postgrestVersion,
2425} : GeneratorMetadata & {
2526 detectOneToOneRelationships : boolean
27+ postgrestVersion ?: string
2628} ) : Promise < string > => {
2729 const columnsByTableId = Object . fromEntries < PostgresColumn [ ] > (
2830 [ ...tables , ...foreignTables , ...views , ...materializedViews ] . map ( ( t ) => [ t . id , [ ] ] )
@@ -32,10 +34,19 @@ export const apply = async ({
3234 . sort ( ( { name : a } , { name : b } ) => a . localeCompare ( b ) )
3335 . forEach ( ( c ) => columnsByTableId [ c . table_id ] . push ( c ) )
3436
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+
3545 let output = `
3646export type Json = string | number | boolean | null | { [key: string]: Json | undefined } | Json[]
3747
3848export type Database = {
49+ ${ internal_supabase_schema }
3950 ${ schemas
4051 . sort ( ( { name : a } , { name : b } ) => a . localeCompare ( b ) )
4152 . map ( ( schema ) => {
@@ -433,110 +444,110 @@ export type Database = {
433444 } ) }
434445}
435446
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 ) } >]
437450
438451export type Tables<
439452 DefaultSchemaTableNameOrOptions extends
440453 | keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
441- | { schema: keyof Database },
454+ | { schema: keyof DatabaseWithoutInternals },
442455 TableName extends DefaultSchemaTableNameOrOptions extends {
443- schema: keyof Database
456+ schema: keyof DatabaseWithoutInternals
444457 }
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 {
451464 Row: infer R
452465 }
453466 ? R
454467 : 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
463473 : never
474+ : never
464475
465476export type TablesInsert<
466477 DefaultSchemaTableNameOrOptions extends
467478 | keyof DefaultSchema["Tables"]
468- | { schema: keyof Database },
479+ | { schema: keyof DatabaseWithoutInternals },
469480 TableName extends DefaultSchemaTableNameOrOptions extends {
470- schema: keyof Database
481+ schema: keyof DatabaseWithoutInternals
471482 }
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 {
476487 Insert: infer I
477488 }
478489 ? I
479490 : never
480491 : 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
486496 : never
497+ : never
487498
488499export type TablesUpdate<
489500 DefaultSchemaTableNameOrOptions extends
490501 | keyof DefaultSchema["Tables"]
491- | { schema: keyof Database },
502+ | { schema: keyof DatabaseWithoutInternals },
492503 TableName extends DefaultSchemaTableNameOrOptions extends {
493- schema: keyof Database
504+ schema: keyof DatabaseWithoutInternals
494505 }
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 {
499510 Update: infer U
500511 }
501512 ? U
502513 : never
503514 : 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
509519 : never
520+ : never
510521
511522export type Enums<
512523 DefaultSchemaEnumNameOrOptions extends
513524 | keyof DefaultSchema["Enums"]
514- | { schema: keyof Database },
525+ | { schema: keyof DatabaseWithoutInternals },
515526 EnumName extends DefaultSchemaEnumNameOrOptions extends {
516- schema: keyof Database
527+ schema: keyof DatabaseWithoutInternals
517528 }
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]
522533 : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
523- ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
524- : never
534+ ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
535+ : never
525536
526537export type CompositeTypes<
527538 PublicCompositeTypeNameOrOptions extends
528539 | keyof DefaultSchema["CompositeTypes"]
529- | { schema: keyof Database },
540+ | { schema: keyof DatabaseWithoutInternals },
530541 CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
531- schema: keyof Database
542+ schema: keyof DatabaseWithoutInternals
532543 }
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]
537548 : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
538- ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
539- : never
549+ ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
550+ : never
540551
541552export const Constants = {
542553 ${ schemas
0 commit comments