File tree Expand file tree Collapse file tree
graphql/query/src/generators Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -298,12 +298,12 @@ function getRelatedTableScalarFields(
298298 // - table.name: PascalCase tableType (e.g., "Shipment", "DriverVehicleAssignment")
299299 // - relation referencedBy.name: raw codec name (e.g., "shipments", "driverVehicleAssignments")
300300 // Try exact match first, then case-insensitive match with optional trailing 's' for plural.
301- const nameLower = referencedTableName . toLowerCase ( ) ;
301+ const nameLower = referencedTableName . toLowerCase ( ) . replace ( / _ / g , '' ) ;
302302 const nameBase = nameLower . endsWith ( 's' ) ? nameLower . slice ( 0 , - 1 ) : nameLower ;
303303 const relatedTable =
304304 allTables . find ( ( t ) => t . name === referencedTableName ) ??
305305 allTables . find ( ( t ) => {
306- const tLower = t . name . toLowerCase ( ) ;
306+ const tLower = t . name . toLowerCase ( ) . replace ( / _ / g , '' ) ;
307307 return tLower === nameLower || tLower === nameBase ;
308308 } ) ;
309309 if ( ! relatedTable ) {
Original file line number Diff line number Diff line change @@ -788,7 +788,18 @@ function findRelatedTable(
788788 }
789789
790790 // Find the related table in allTables
791- return allTables . find ( ( tbl ) => tbl . name === referencedTableName ) || null ;
791+ const exactMatch = allTables . find ( ( tbl ) => tbl . name === referencedTableName ) ;
792+ if ( exactMatch ) return exactMatch ;
793+
794+ // Fuzzy match: case-insensitive, strip underscores, optional trailing 's'.
795+ // Needed because relation target names from _meta use snake_case codec names
796+ // (e.g. "routes", "delivery_zone") while allTables[].name is PascalCase (e.g. "Route", "DeliveryZone").
797+ const nameLower = referencedTableName . toLowerCase ( ) . replace ( / _ / g, '' ) ;
798+ const nameBase = nameLower . endsWith ( 's' ) ? nameLower . slice ( 0 , - 1 ) : nameLower ;
799+ return allTables . find ( ( tbl ) => {
800+ const tLower = tbl . name . toLowerCase ( ) . replace ( / _ / g, '' ) ;
801+ return tLower === nameLower || tLower === nameBase ;
802+ } ) || null ;
792803}
793804
794805/**
You can’t perform that action at this time.
0 commit comments