@@ -9,6 +9,8 @@ import type {
99} from '../../lib/index.js'
1010import type { GeneratorMetadata } from '../../lib/generators.js'
1111
12+ const defaultSchema = process . env . PG_META_GENERATE_TYPES_DEFAULT_SCHEMA
13+
1214export const apply = async ( {
1315 schemas,
1416 tables,
@@ -390,11 +392,18 @@ export type Database = {
390392 } ) }
391393}
392394
393- type PublicSchema = Database[Extract<keyof Database, "public">]
395+ ${
396+ defaultSchema
397+ ? `export type DefaultSchema = Database[Extract<keyof Database, ${ JSON . stringify ( defaultSchema ) } >]
398+ export type DefaultSchemaOrPublic = DefaultSchema`
399+ : `export type PublicSchema = Database[Extract<keyof Database, "public">]
400+ export type DefaultSchemaOrPublic = PublicSchema`
401+ }
402+
394403
395404export type Tables<
396405 PublicTableNameOrOptions extends
397- | keyof (PublicSchema ["Tables"] & PublicSchema ["Views"])
406+ | keyof (DefaultSchemaOrPublic ["Tables"] & DefaultSchemaOrPublic ["Views"])
398407 | { schema: keyof Database },
399408 TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
400409 ? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
@@ -407,8 +416,8 @@ export type Tables<
407416 }
408417 ? R
409418 : never
410- : PublicTableNameOrOptions extends keyof (PublicSchema ["Tables"] & PublicSchema ["Views"])
411- ? (PublicSchema ["Tables"] & PublicSchema ["Views"])[PublicTableNameOrOptions] extends {
419+ : PublicTableNameOrOptions extends keyof (DefaultSchemaOrPublic ["Tables"] & DefaultSchemaOrPublic ["Views"])
420+ ? (DefaultSchemaOrPublic ["Tables"] & DefaultSchemaOrPublic ["Views"])[PublicTableNameOrOptions] extends {
412421 Row: infer R
413422 }
414423 ? R
@@ -417,7 +426,7 @@ export type Tables<
417426
418427export type TablesInsert<
419428 PublicTableNameOrOptions extends
420- | keyof PublicSchema ["Tables"]
429+ | keyof DefaultSchemaOrPublic ["Tables"]
421430 | { schema: keyof Database },
422431 TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
423432 ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -428,8 +437,8 @@ export type TablesInsert<
428437 }
429438 ? I
430439 : never
431- : PublicTableNameOrOptions extends keyof PublicSchema ["Tables"]
432- ? PublicSchema ["Tables"][PublicTableNameOrOptions] extends {
440+ : PublicTableNameOrOptions extends keyof DefaultSchemaOrPublic ["Tables"]
441+ ? DefaultSchemaOrPublic ["Tables"][PublicTableNameOrOptions] extends {
433442 Insert: infer I
434443 }
435444 ? I
@@ -438,7 +447,7 @@ export type TablesInsert<
438447
439448export type TablesUpdate<
440449 PublicTableNameOrOptions extends
441- | keyof PublicSchema ["Tables"]
450+ | keyof DefaultSchemaOrPublic ["Tables"]
442451 | { schema: keyof Database },
443452 TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
444453 ? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -449,8 +458,8 @@ export type TablesUpdate<
449458 }
450459 ? U
451460 : never
452- : PublicTableNameOrOptions extends keyof PublicSchema ["Tables"]
453- ? PublicSchema ["Tables"][PublicTableNameOrOptions] extends {
461+ : PublicTableNameOrOptions extends keyof DefaultSchemaOrPublic ["Tables"]
462+ ? DefaultSchemaOrPublic ["Tables"][PublicTableNameOrOptions] extends {
454463 Update: infer U
455464 }
456465 ? U
@@ -459,28 +468,28 @@ export type TablesUpdate<
459468
460469export type Enums<
461470 PublicEnumNameOrOptions extends
462- | keyof PublicSchema ["Enums"]
471+ | keyof DefaultSchemaOrPublic ["Enums"]
463472 | { schema: keyof Database },
464473 EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
465474 ? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
466475 : never = never
467476> = PublicEnumNameOrOptions extends { schema: keyof Database }
468477 ? Database[PublicEnumNameOrOptions["schema"]]["Enums"][EnumName]
469- : PublicEnumNameOrOptions extends keyof PublicSchema ["Enums"]
470- ? PublicSchema ["Enums"][PublicEnumNameOrOptions]
478+ : PublicEnumNameOrOptions extends keyof DefaultSchemaOrPublic ["Enums"]
479+ ? DefaultSchemaOrPublic ["Enums"][PublicEnumNameOrOptions]
471480 : never
472481
473482export type CompositeTypes<
474483 PublicCompositeTypeNameOrOptions extends
475- | keyof PublicSchema ['CompositeTypes']
484+ | keyof DefaultSchemaOrPublic ['CompositeTypes']
476485 | { schema: keyof Database },
477486 CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
478487 ? keyof Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes']
479488 : never = never
480489> = PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
481490 ? Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'][CompositeTypeName]
482- : PublicCompositeTypeNameOrOptions extends keyof PublicSchema ['CompositeTypes']
483- ? PublicSchema ['CompositeTypes'][PublicCompositeTypeNameOrOptions]
491+ : PublicCompositeTypeNameOrOptions extends keyof DefaultSchemaOrPublic ['CompositeTypes']
492+ ? DefaultSchemaOrPublic ['CompositeTypes'][PublicCompositeTypeNameOrOptions]
484493 : never;
485494`
486495
0 commit comments