@@ -155,33 +155,14 @@ export type Database = {
155155 relationship . referenced_schema === table . schema &&
156156 relationship . relation === table . name
157157 )
158- . sort ( ( a , b ) => {
159- // First try to sort by foreign key name.
160- const foreignKeyCompare = a . foreign_key_name . localeCompare (
161- b . foreign_key_name
162- )
163- if ( foreignKeyCompare !== 0 ) return foreignKeyCompare
164-
165- // Then try to sort by referenced relation.
166- const referencedRelationCompare = a . referenced_relation . localeCompare (
167- b . referenced_relation
168- )
169- if ( referencedRelationCompare !== 0 ) return referencedRelationCompare
170-
171- // Then try to sort by referenced columns, finding the first difference.
172- for (
173- let i = 0 ;
174- i < Math . min ( a . referenced_columns . length , b . referenced_columns . length ) ;
175- i ++
176- ) {
177- const refColCompare = a . referenced_columns [ i ] . localeCompare (
178- b . referenced_columns [ i ]
158+ . sort (
159+ ( a , b ) =>
160+ a . foreign_key_name . localeCompare ( b . foreign_key_name ) ||
161+ a . referenced_relation . localeCompare ( b . referenced_relation ) ||
162+ JSON . stringify ( a . referenced_columns ) . localeCompare (
163+ JSON . stringify ( b . referenced_columns )
179164 )
180- if ( refColCompare !== 0 ) return refColCompare
181- }
182- // If all referenced columns are the same, sort by the number of referenced columns.
183- return a . referenced_columns . length - b . referenced_columns . length
184- } )
165+ )
185166 . map (
186167 ( relationship ) => `{
187168 foreignKeyName: ${ JSON . stringify ( relationship . foreign_key_name ) }
@@ -254,33 +235,14 @@ export type Database = {
254235 relationship . referenced_schema === view . schema &&
255236 relationship . relation === view . name
256237 )
257- . sort ( ( a , b ) => {
258- // First try to sort by foreign key name.
259- const foreignKeyCompare = a . foreign_key_name . localeCompare (
260- b . foreign_key_name
261- )
262- if ( foreignKeyCompare !== 0 ) return foreignKeyCompare
263-
264- // Then try to sort by referenced relation.
265- const referencedRelationCompare = a . referenced_relation . localeCompare (
266- b . referenced_relation
267- )
268- if ( referencedRelationCompare !== 0 ) return referencedRelationCompare
269-
270- // Then try to sort by referenced columns, finding the first difference.
271- for (
272- let i = 0 ;
273- i < Math . min ( a . referenced_columns . length , b . referenced_columns . length ) ;
274- i ++
275- ) {
276- const refColCompare = a . referenced_columns [ i ] . localeCompare (
277- b . referenced_columns [ i ]
238+ . sort (
239+ ( a , b ) =>
240+ a . foreign_key_name . localeCompare ( b . foreign_key_name ) ||
241+ a . referenced_relation . localeCompare ( b . referenced_relation ) ||
242+ JSON . stringify ( a . referenced_columns ) . localeCompare (
243+ JSON . stringify ( b . referenced_columns )
278244 )
279- if ( refColCompare !== 0 ) return refColCompare
280- }
281- // If all referenced columns are the same, sort by the number of referenced columns.
282- return a . referenced_columns . length - b . referenced_columns . length
283- } )
245+ )
284246 . map (
285247 ( relationship ) => `{
286248 foreignKeyName: ${ JSON . stringify ( relationship . foreign_key_name ) }
0 commit comments