Skip to content

Commit 675aafb

Browse files
committed
fix: use env var to set default schema alias in TypeScript types
1 parent b85bf01 commit 675aafb

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

src/server/templates/typescript.ts

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import type {
99
} from '../../lib/index.js'
1010
import type { GeneratorMetadata } from '../../lib/generators.js'
1111

12+
const defaultSchema = process.env.PG_META_GENERATE_TYPES_DEFAULT_SCHEMA
13+
1214
export 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
395404
export 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
418427
export 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
439448
export 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
460469
export 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
473482
export 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

Comments
 (0)