diff --git a/src/server/templates/typescript.ts b/src/server/templates/typescript.ts index 6f96c6e1..25c38a18 100644 --- a/src/server/templates/typescript.ts +++ b/src/server/templates/typescript.ts @@ -231,8 +231,10 @@ export type Database = { relationship.referenced_schema === view.schema && relationship.relation === view.name ) - .sort(({ foreign_key_name: a }, { foreign_key_name: b }) => - a.localeCompare(b) + .sort( + (a, b) => + a.foreign_key_name.localeCompare(b.foreign_key_name) || + a.referenced_relation.localeCompare(b.referenced_relation) ) .map( (relationship) => `{ diff --git a/test/server/typegen.ts b/test/server/typegen.ts index c60136d1..63569fb8 100644 --- a/test/server/typegen.ts +++ b/test/server/typegen.ts @@ -257,13 +257,13 @@ test('typegen: typescript', async () => { { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] - referencedRelation: "users" + referencedRelation: "a_view" referencedColumns: ["id"] }, { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] - referencedRelation: "a_view" + referencedRelation: "users" referencedColumns: ["id"] }, { @@ -294,13 +294,13 @@ test('typegen: typescript', async () => { { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] - referencedRelation: "users" + referencedRelation: "a_view" referencedColumns: ["id"] }, { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] - referencedRelation: "a_view" + referencedRelation: "users" referencedColumns: ["id"] }, { @@ -796,14 +796,14 @@ test('typegen w/ one-to-one relationships', async () => { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "a_view" referencedColumns: ["id"] }, { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "a_view" + referencedRelation: "users" referencedColumns: ["id"] }, { @@ -836,14 +836,14 @@ test('typegen w/ one-to-one relationships', async () => { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "a_view" referencedColumns: ["id"] }, { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "a_view" + referencedRelation: "users" referencedColumns: ["id"] }, { @@ -1340,14 +1340,14 @@ test('typegen: typescript w/ one-to-one relationships', async () => { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "a_view" referencedColumns: ["id"] }, { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "a_view" + referencedRelation: "users" referencedColumns: ["id"] }, { @@ -1380,14 +1380,14 @@ test('typegen: typescript w/ one-to-one relationships', async () => { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "users" + referencedRelation: "a_view" referencedColumns: ["id"] }, { foreignKeyName: "todos_user-id_fkey" columns: ["user-id"] isOneToOne: false - referencedRelation: "a_view" + referencedRelation: "users" referencedColumns: ["id"] }, {