Openstatus
www.openstatus.dev
1import { DrizzleAdapter } from "@auth/drizzle-adapter";
2import type { Adapter } from "next-auth/adapters";
3
4import { db } from "@openstatus/db";
5import {
6 account,
7 session,
8 user,
9 verificationToken,
10} from "@openstatus/db/src/schema";
11
12import { createUser, getUser } from "./helpers";
13
14export const adapter: Adapter = {
15 ...DrizzleAdapter(db, {
16 // @ts-expect-error: problem with type
17 usersTable: user,
18 // @ts-expect-error: problem with type
19 accountsTable: account,
20 // @ts-expect-error: problem with type
21 sessionsTable: session,
22 verificationTokensTable: verificationToken,
23 }),
24 createUser: async (data) => {
25 const user = await createUser(data);
26 return {
27 ...user,
28 id: user.id.toString(),
29 email: user.email || "",
30 };
31 },
32 getUser: async (id) => {
33 const user = await getUser(id);
34 if (!user) return null;
35 return {
36 ...user,
37 id: user.id.toString(),
38 email: user.email || "",
39 };
40 },
41};