import type { GuildMemberResponse } from "@purrkit/types"; import fs from "node:fs"; import { db, tickets } from "./old-db"; const users = await db .select({ subjectId: tickets.authorId, closerId: tickets.closedBy, }) .from(tickets) .execute(); // { subjectId, closerId }[] const activeUserIds = new Set(); for (const row of users) { if (row.subjectId) activeUserIds.add(row.subjectId); if (row.closerId) activeUserIds.add(row.closerId); } const membersArray = JSON.parse( fs.readFileSync("members/members.json", "utf-8"), ) as GuildMemberResponse[]; const allMembersLookup = new Map( membersArray.map((member) => [member.user.id, member]), ); const membersMap: Record = {}; const missingUserIds: string[] = []; for (const id of activeUserIds) { const member = allMembersLookup.get(id); if (member) { membersMap[id] = member; } else { missingUserIds.push(id); } }