@@ -3,6 +3,7 @@ import { PostgresMeta } from '../../../lib/index.js'
33import { DEFAULT_POOL_CONFIG } from '../../constants.js'
44import { extractRequestForLogging } from '../../utils.js'
55import { apply as applyTypescriptTemplate } from '../../templates/typescript.js'
6+ import { getGeneratorMetadata } from '../../../lib/generators.js'
67
78export default async ( fastify : FastifyInstance ) => {
89 fastify . get < {
@@ -21,97 +22,18 @@ export default async (fastify: FastifyInstance) => {
2122 const detectOneToOneRelationships = request . query . detect_one_to_one_relationships === 'true'
2223
2324 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,
2727 excludedSchemas,
28- includeColumns : false ,
2928 } )
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 ) } )
9631 reply . code ( 500 )
97- return { error : typesError . message }
32+ return { error : generatorMetaError . message }
9833 }
9934
10035 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 ,
11537 detectOneToOneRelationships,
11638 } )
11739 } )
0 commit comments