revokeSessions
uses #tcm/host (database)
End every session whose data matches, e.g. revokeSessions((s) => s.user === "ada"); returns how many.
import { callNow } from "#codebase/tcmts/server"; import { database } from "#tcm/host"; export function revokeSessions(match: (data: Record<string, unknown>) => boolean): number { callNow("revokeSessions()"); const db = database("sessions"); let n = 0; for (const row of db.prepare("SELECT id, data FROM sessions").all() as { id: string; data: string; }[]) { if (!match(JSON.parse(row.data) as Record<string, unknown>)) continue; db.prepare("DELETE FROM sessions WHERE id = ?").run(row.id); n++; } return n; }