From 32f972fc7631bac047f5484d4ebe4ee17493f941 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 20 Feb 2026 18:26:28 +0000 Subject: [PATCH] Fix union import: use two queries with JS deduplication drizzle-orm 0.36.x does not export a standalone union() function. Replace with two awaited queries merged via a Map (dedup by id), then sorted by createdAt descending in JS. https://claude.ai/code/session_01E3ugKTfatkEc5TcDGXvHiW --- app/models/league.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/models/league.ts b/app/models/league.ts index 8d4e9e5..50537e0 100644 --- a/app/models/league.ts +++ b/app/models/league.ts @@ -1,4 +1,4 @@ -import { eq, desc, and, union } from "drizzle-orm"; +import { eq, desc, and } from "drizzle-orm"; import { database } from "~/database/context"; import * as schema from "~/database/schema"; @@ -82,22 +82,26 @@ export async function findLeaguesWithActiveSeasonsByUserId( }; // Leagues where user has a team in the current season - const leaguesWithTeam = db + const leaguesWithTeam = await db .select(leagueFields) .from(schema.leagues) .innerJoin(schema.teams, eq(schema.teams.seasonId, schema.leagues.currentSeasonId)) .where(eq(schema.teams.ownerId, userId)); // Leagues where user is a commissioner (with or without a team) - const leaguesAsCommissioner = db + const leaguesAsCommissioner = await db .select(leagueFields) .from(schema.leagues) .innerJoin(schema.commissioners, eq(schema.commissioners.leagueId, schema.leagues.id)) .where(eq(schema.commissioners.userId, userId)); - // Union deduplicates results in case user is both a commissioner and has a team - return await union(leaguesWithTeam, leaguesAsCommissioner).orderBy( - desc(schema.leagues.createdAt) + // Deduplicate by id in case user is both a commissioner and has a team, then sort + const leagueMap = new Map(); + for (const league of [...leaguesWithTeam, ...leaguesAsCommissioner]) { + leagueMap.set(league.id, league); + } + return [...leagueMap.values()].sort( + (a, b) => b.createdAt.getTime() - a.createdAt.getTime() ); }