Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
TypeScript
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455import { DrizzleAdapter } from "@auth/drizzle-adapter";import { db } from "@openstatus/db";import { account, session, user, verificationToken,} from "@openstatus/db/src/schema";import type { Adapter } from "next-auth/adapters";
import { createUser, getUser, getUserByEmail } from "./helpers";
const drizzleAdapter = DrizzleAdapter(db, { // @ts-expect-error: problem with type usersTable: user, // @ts-expect-error: problem with type accountsTable: account, // @ts-expect-error: problem with type sessionsTable: session, verificationTokensTable: verificationToken,}) as Adapter;
export const adapter: Adapter = { ...drizzleAdapter, // Auth.js lowercases magic-link addresses while OAuth profiles arrive as-is; // without this a mixed-case OAuth user gets a second account on first // magic-link sign-in. getUserByEmail: async (email) => { const user = await getUserByEmail(email); if (!user) return null; return { ...user, id: user.id.toString(), email: user.email || "", }; }, createUser: async (data) => { const user = await createUser(data); return { ...user, id: user.id.toString(), email: user.email || "", }; }, getUser: async (id) => { const user = await getUser(id); if (!user) return null; return { ...user, id: user.id.toString(), email: user.email || "", }; },};