@@ -3,6 +3,7 @@ import { PostgresMeta } from '../../../lib/index.js'
3
3
import { DEFAULT_POOL_CONFIG } from '../../constants.js'
4
4
import { extractRequestForLogging } from '../../utils.js'
5
5
import { apply as applyTypescriptTemplate } from '../../templates/typescript.js'
6
+ import { getGeneratorMetadata } from '../../../lib/generators.js'
6
7
7
8
export default async ( fastify : FastifyInstance ) => {
8
9
fastify . get < {
@@ -21,97 +22,18 @@ export default async (fastify: FastifyInstance) => {
21
22
const detectOneToOneRelationships = request . query . detect_one_to_one_relationships === 'true'
22
23
23
24
const pgMeta : PostgresMeta = new PostgresMeta ( { ...DEFAULT_POOL_CONFIG , connectionString } )
24
- const { data : schemas , error : schemasError } = await pgMeta . schemas . list ( )
25
- const { data : tables , error : tablesError } = await pgMeta . tables . list ( {
26
- includedSchemas : includedSchemas . length > 0 ? includedSchemas : undefined ,
25
+ const { data : generatorMeta , error : generatorMetaError } = await getGeneratorMetadata ( pgMeta , {
26
+ includedSchemas,
27
27
excludedSchemas,
28
- includeColumns : false ,
29
28
} )
30
- const { data : views , error : viewsError } = await pgMeta . views . list ( {
31
- includedSchemas : includedSchemas . length > 0 ? includedSchemas : undefined ,
32
- excludedSchemas,
33
- includeColumns : false ,
34
- } )
35
- const { data : materializedViews , error : materializedViewsError } =
36
- await pgMeta . materializedViews . list ( {
37
- includedSchemas : includedSchemas . length > 0 ? includedSchemas : undefined ,
38
- excludedSchemas,
39
- includeColumns : false ,
40
- } )
41
- const { data : columns , error : columnsError } = await pgMeta . columns . list ( {
42
- includedSchemas : includedSchemas . length > 0 ? includedSchemas : undefined ,
43
- excludedSchemas,
44
- } )
45
- const { data : relationships , error : relationshipsError } = await pgMeta . relationships . list ( )
46
- const { data : functions , error : functionsError } = await pgMeta . functions . list ( {
47
- includedSchemas : includedSchemas . length > 0 ? includedSchemas : undefined ,
48
- excludedSchemas,
49
- } )
50
- const { data : types , error : typesError } = await pgMeta . types . list ( {
51
- includeArrayTypes : true ,
52
- includeSystemSchemas : true ,
53
- } )
54
- await pgMeta . end ( )
55
-
56
- if ( schemasError ) {
57
- request . log . error ( { error : schemasError , request : extractRequestForLogging ( request ) } )
58
- reply . code ( 500 )
59
- return { error : schemasError . message }
60
- }
61
- if ( tablesError ) {
62
- request . log . error ( { error : tablesError , request : extractRequestForLogging ( request ) } )
63
- reply . code ( 500 )
64
- return { error : tablesError . message }
65
- }
66
- if ( viewsError ) {
67
- request . log . error ( { error : viewsError , request : extractRequestForLogging ( request ) } )
68
- reply . code ( 500 )
69
- return { error : viewsError . message }
70
- }
71
- if ( materializedViewsError ) {
72
- request . log . error ( {
73
- error : materializedViewsError ,
74
- request : extractRequestForLogging ( request ) ,
75
- } )
76
- reply . code ( 500 )
77
- return { error : materializedViewsError . message }
78
- }
79
- if ( columnsError ) {
80
- request . log . error ( { error : columnsError , request : extractRequestForLogging ( request ) } )
81
- reply . code ( 500 )
82
- return { error : columnsError . message }
83
- }
84
- if ( relationshipsError ) {
85
- request . log . error ( { error : relationshipsError , request : extractRequestForLogging ( request ) } )
86
- reply . code ( 500 )
87
- return { error : relationshipsError . message }
88
- }
89
- if ( functionsError ) {
90
- request . log . error ( { error : functionsError , request : extractRequestForLogging ( request ) } )
91
- reply . code ( 500 )
92
- return { error : functionsError . message }
93
- }
94
- if ( typesError ) {
95
- request . log . error ( { error : typesError , request : extractRequestForLogging ( request ) } )
29
+ if ( generatorMetaError ) {
30
+ request . log . error ( { error : generatorMetaError , request : extractRequestForLogging ( request ) } )
96
31
reply . code ( 500 )
97
- return { error : typesError . message }
32
+ return { error : generatorMetaError . message }
98
33
}
99
34
100
35
return applyTypescriptTemplate ( {
101
- schemas : schemas . filter (
102
- ( { name } ) =>
103
- ! excludedSchemas . includes ( name ) &&
104
- ( includedSchemas . length === 0 || includedSchemas . includes ( name ) )
105
- ) ,
106
- tables,
107
- views,
108
- materializedViews,
109
- columns,
110
- relationships,
111
- functions : functions . filter (
112
- ( { return_type } ) => ! [ 'trigger' , 'event_trigger' ] . includes ( return_type )
113
- ) ,
114
- types,
36
+ ...generatorMeta ,
115
37
detectOneToOneRelationships,
116
38
} )
117
39
} )
0 commit comments