@@ -9,6 +9,8 @@ import type {
9
9
} from '../../lib/index.js'
10
10
import type { GeneratorMetadata } from '../../lib/generators.js'
11
11
12
+ const defaultSchema = process . env . PG_META_GENERATE_TYPES_DEFAULT_SCHEMA
13
+
12
14
export const apply = async ( {
13
15
schemas,
14
16
tables,
@@ -390,11 +392,18 @@ export type Database = {
390
392
} ) }
391
393
}
392
394
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
+
394
403
395
404
export type Tables<
396
405
PublicTableNameOrOptions extends
397
- | keyof (PublicSchema ["Tables"] & PublicSchema ["Views"])
406
+ | keyof (DefaultSchemaOrPublic ["Tables"] & DefaultSchemaOrPublic ["Views"])
398
407
| { schema: keyof Database },
399
408
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
400
409
? keyof (Database[PublicTableNameOrOptions["schema"]]["Tables"] &
@@ -407,8 +416,8 @@ export type Tables<
407
416
}
408
417
? R
409
418
: 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 {
412
421
Row: infer R
413
422
}
414
423
? R
@@ -417,7 +426,7 @@ export type Tables<
417
426
418
427
export type TablesInsert<
419
428
PublicTableNameOrOptions extends
420
- | keyof PublicSchema ["Tables"]
429
+ | keyof DefaultSchemaOrPublic ["Tables"]
421
430
| { schema: keyof Database },
422
431
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
423
432
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -428,8 +437,8 @@ export type TablesInsert<
428
437
}
429
438
? I
430
439
: never
431
- : PublicTableNameOrOptions extends keyof PublicSchema ["Tables"]
432
- ? PublicSchema ["Tables"][PublicTableNameOrOptions] extends {
440
+ : PublicTableNameOrOptions extends keyof DefaultSchemaOrPublic ["Tables"]
441
+ ? DefaultSchemaOrPublic ["Tables"][PublicTableNameOrOptions] extends {
433
442
Insert: infer I
434
443
}
435
444
? I
@@ -438,7 +447,7 @@ export type TablesInsert<
438
447
439
448
export type TablesUpdate<
440
449
PublicTableNameOrOptions extends
441
- | keyof PublicSchema ["Tables"]
450
+ | keyof DefaultSchemaOrPublic ["Tables"]
442
451
| { schema: keyof Database },
443
452
TableName extends PublicTableNameOrOptions extends { schema: keyof Database }
444
453
? keyof Database[PublicTableNameOrOptions["schema"]]["Tables"]
@@ -449,8 +458,8 @@ export type TablesUpdate<
449
458
}
450
459
? U
451
460
: never
452
- : PublicTableNameOrOptions extends keyof PublicSchema ["Tables"]
453
- ? PublicSchema ["Tables"][PublicTableNameOrOptions] extends {
461
+ : PublicTableNameOrOptions extends keyof DefaultSchemaOrPublic ["Tables"]
462
+ ? DefaultSchemaOrPublic ["Tables"][PublicTableNameOrOptions] extends {
454
463
Update: infer U
455
464
}
456
465
? U
@@ -459,28 +468,28 @@ export type TablesUpdate<
459
468
460
469
export type Enums<
461
470
PublicEnumNameOrOptions extends
462
- | keyof PublicSchema ["Enums"]
471
+ | keyof DefaultSchemaOrPublic ["Enums"]
463
472
| { schema: keyof Database },
464
473
EnumName extends PublicEnumNameOrOptions extends { schema: keyof Database }
465
474
? keyof Database[PublicEnumNameOrOptions["schema"]]["Enums"]
466
475
: never = never
467
476
> = PublicEnumNameOrOptions extends { schema: keyof Database }
468
477
? 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]
471
480
: never
472
481
473
482
export type CompositeTypes<
474
483
PublicCompositeTypeNameOrOptions extends
475
- | keyof PublicSchema ['CompositeTypes']
484
+ | keyof DefaultSchemaOrPublic ['CompositeTypes']
476
485
| { schema: keyof Database },
477
486
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
478
487
? keyof Database[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes']
479
488
: never = never
480
489
> = PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
481
490
? 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]
484
493
: never;
485
494
`
486
495
0 commit comments