Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
3bcc11d
feat(adapter-surrealdb): implemented with unit tests
martinschaer Dec 28, 2022
f40b07c
Merge branch 'main' into feature/adapter-surrealdb
martinschaer Dec 30, 2022
2fc501e
chore: update README
martinschaer Jan 13, 2023
165c08b
Merge branch 'main' into feature/adapter-surrealdb
martinschaer Jan 13, 2023
308a18c
Use stateless DB connection
martinschaer Jan 15, 2023
fde4b49
Merge pull request #1 from martinschaer/feature/rest-adapter-surrealdb
martinschaer Jan 15, 2023
0da0783
Update surrealdb-rest-ts
martinschaer Jan 15, 2023
15d253e
Merge pull request #2 from martinschaer/feature/rest-adapter-surrealdb
martinschaer Jan 15, 2023
7af7ca4
chore: bump turbo and pnpm
balazsorban44 Mar 31, 2023
bc1a24b
chore(docs): fix dynamodb typo (#7130)
jakzo Apr 2, 2023
cdf4db4
chore: bump pnpm
balazsorban44 Apr 2, 2023
0503717
Merge branch 'main' of github.com:nextauthjs/next-auth
balazsorban44 Apr 2, 2023
11b073a
chore: update lock file, bump dev dependencies
balazsorban44 Apr 2, 2023
8afa92c
chore: run `pnpm install --fix-lockfile`
balazsorban44 Apr 2, 2023
cf3a4bb
chore: re-run pnpm install
balazsorban44 Apr 2, 2023
6f17c85
chore: add missing dev dep
balazsorban44 Apr 3, 2023
1f0fc7b
Merge branch 'main' into feature/adapter-surrealdb
martinschaer Apr 3, 2023
ef92bd7
revert lock
martinschaer Apr 3, 2023
0de02bd
update lock
martinschaer Apr 3, 2023
52b7244
use surrealdb.js
martinschaer Apr 3, 2023
1acce56
add rest test
martinschaer Apr 3, 2023
2426f12
remove commented-out code
martinschaer Apr 3, 2023
50ef715
update readme
martinschaer Apr 3, 2023
a289bc9
modularize repeated code
martinschaer Apr 3, 2023
c2eb9b3
fix(docs): fix default `maxAge` formula (#7406)
vixeven Apr 30, 2023
d739e8e
feat(adapters): add Account mapping before database write (#7369)
balazsorban44 Apr 30, 2023
5400645
chore: improve errors, add more docs (#7415)
balazsorban44 May 1, 2023
542c35d
fix: loosen profile types
balazsorban44 May 1, 2023
62e2ad1
chore: type fixes
balazsorban44 May 1, 2023
92a0fc4
fix: allow handling OAuth callback error response
balazsorban44 May 1, 2023
e3bdb38
fix(docs): remove extra heading
balazsorban44 May 3, 2023
6f5a503
chore: use `@ts-ignore`
balazsorban44 May 4, 2023
d6bc65f
chore: support release any package as experimental
balazsorban44 May 4, 2023
99247ce
chore: separate manual release job
balazsorban44 May 4, 2023
e0b5f18
chore: skip test for manual release
balazsorban44 May 4, 2023
eaf5080
chore: tweak
balazsorban44 May 4, 2023
8f416b6
chore: tweaks
balazsorban44 May 4, 2023
b96f013
chore: tweak manual release version
balazsorban44 May 5, 2023
8bf9b88
Use query instead of select to be able to use query params
martinschaer May 6, 2023
a47130a
Fix lint errors
martinschaer May 7, 2023
ab941b2
Merge branch 'main' into feature/adapter-surrealdb
martinschaer May 7, 2023
c8a7a6f
Update surrealdb.js and remove surrealdb-rest-ts in favor of Experime…
martinschaer May 7, 2023
106aebe
Merge branch 'main' into feature/adapter-surrealdb
martinschaer Sep 17, 2023
f2977ce
update pnpm-lock
martinschaer Sep 17, 2023
ab045b6
fix merge
martinschaer Sep 17, 2023
9070aed
fix merge
martinschaer Sep 17, 2023
72f95b6
fix merge
martinschaer Sep 17, 2023
e463d82
migrate surrealdb.js api
martinschaer Sep 17, 2023
a4ff2df
fix queries
martinschaer Sep 17, 2023
1ee9edc
update package.json
martinschaer Sep 17, 2023
a644937
fix types
martinschaer Sep 17, 2023
aea2d7f
prepare for rest
martinschaer Sep 17, 2023
2600a74
update readme
martinschaer Sep 17, 2023
d1c5647
Merge branch 'main' into feature/adapter-surrealdb
ThangHuuVu Sep 23, 2023
e3516cb
chore: format PR
ThangHuuVu Sep 23, 2023
b121cd9
Update README.md
ThangHuuVu Sep 23, 2023
56aeb74
Update package.json
ThangHuuVu Sep 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
migrate surrealdb.js api
  • Loading branch information
martinschaer committed Sep 17, 2023
commit e463d82a0513a9a03db6b8176856260a9da8c0ad
58 changes: 29 additions & 29 deletions packages/adapter-surrealdb/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import type {
AdapterAccount,
AdapterSession,
VerificationToken,
} from "next-auth/adapters"
import type { ProviderType } from "next-auth/providers"
} from "@auth/core/adapters"
import type { ProviderType } from "@auth/core/providers"

type Document = Record<string, string | null | undefined> & { id: string }
export type UserDoc = Document & { email: string }
Expand Down Expand Up @@ -91,7 +91,7 @@ export function SurrealDBAdapter(
async createUser(user: Omit<AdapterUser, "id">) {
const surreal = await client
const doc = userToDoc(user)
const userDoc = await surreal.create("user", doc)
const userDoc = await surreal.create<UserDoc, Omit<UserDoc, "id">>("user", doc)
const newUser = userDoc[0] !== undefined ? docToUser(userDoc[0]) : null
return newUser
},
Expand All @@ -108,7 +108,7 @@ export function SurrealDBAdapter(
if (doc) {
return docToUser(doc as unknown as UserDoc)
}
} catch (e) {}
} catch (e) { }
return null
},
async getUserByEmail(email: string) {
Expand All @@ -120,7 +120,7 @@ export function SurrealDBAdapter(
)
const doc = users[0].result?.[0]
if (doc) return docToUser(doc as unknown as UserDoc)
} catch (e) {}
} catch (e) { }
return null
},
async getUserByAccount({
Expand All @@ -140,17 +140,18 @@ export function SurrealDBAdapter(
const user = (users[0].result as unknown as AccountDoc<UserDoc>[])[0]
?.userId
if (user) return docToUser(user)
} catch (e) {}
} catch (e) { }
return null
},
async updateUser(user: Partial<AdapterUser>) {
const surreal = await client
let updatedUser = await surreal.change<
Omit<UserDoc, "id">,
UserDoc,
string
>(`user:${user.id}`, user)
return docToUser(updatedUser as UserDoc)
const doc = { ...user, emailVerified: user.emailVerified?.toISOString(), id: undefined }
let updatedUser = await surreal.merge<UserDoc, Omit<UserDoc, "id">>(`user:${user.id}`, doc)
if (updatedUser.length) {
return docToUser(updatedUser[0])
} else {
return null
}
},
async deleteUser(userId: string) {
const surreal = await client
Expand All @@ -169,7 +170,7 @@ export function SurrealDBAdapter(
const accountId = extractId(account.id)
await surreal.delete(`account:${accountId}`)
}
} catch (e) {}
} catch (e) { }

// delete session
try {
Expand All @@ -185,7 +186,7 @@ export function SurrealDBAdapter(
const sessionId = extractId(session.id)
await surreal.delete(`session:${sessionId}`)
}
} catch (e) {}
} catch (e) { }

// delete user
await surreal.delete(`user:${userId}`)
Expand Down Expand Up @@ -216,7 +217,7 @@ export function SurrealDBAdapter(
const accountId = extractId(account.id)
await surreal.delete(`account:${accountId}`)
}
} catch (e) {}
} catch (e) { }
},
async createSession({
sessionToken,
Expand Down Expand Up @@ -262,7 +263,7 @@ export function SurrealDBAdapter(
}),
}
}
} catch (e) {}
} catch (e) { }
return null
},
async updateSession(
Expand All @@ -280,11 +281,7 @@ export function SurrealDBAdapter(
const sessionDoc = (sessions[0].result as unknown as SessionDoc[])[0]
if (sessionDoc && session.expires) {
const sessionId = extractId(sessionDoc.id)
let updatedSession = await surreal.change<
Omit<SessionDoc, "id">,
Omit<SessionDoc, "id">,
string
>(
let updatedSession = await surreal.merge<SessionDoc, Omit<SessionDoc, "id">>(
`session:${sessionId}`,
sessionToDoc({
...sessionDoc,
Expand All @@ -293,9 +290,13 @@ export function SurrealDBAdapter(
expires: session.expires,
})
)
return docToSession(updatedSession as SessionDoc)
if (updatedSession.length) {
return docToSession(updatedSession[0])
} else {
return null
}
}
} catch (e) {}
} catch (e) { }
return null
},
async deleteSession(sessionToken: string) {
Expand All @@ -311,9 +312,10 @@ export function SurrealDBAdapter(
const session = (sessions[0].result as unknown as SessionDoc[])[0]
if (session) {
const sessionId = extractId(session.id)
return await surreal.delete(`session:${sessionId}`)
await surreal.delete(`session:${sessionId}`)
return
}
} catch (e) {}
} catch (e) { }
},
async createVerificationToken({
identifier,
Expand All @@ -338,9 +340,7 @@ export function SurrealDBAdapter(
}) {
const surreal = await client
try {
const tokens = await surreal.query<
(VerificationToken & { id: string })[]
>(
const tokens = await surreal.query<{ indetifier: string, expires: string, token: string, id: string }[]>(
`SELECT *
FROM verification_token
WHERE identifier = $identifier
Expand All @@ -357,7 +357,7 @@ export function SurrealDBAdapter(
token: vt.token,
}
}
} catch (e) {}
} catch (e) { }
return null
},
}
Expand Down
4 changes: 2 additions & 2 deletions packages/adapter-surrealdb/tests/common.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type Surreal from "surrealdb.js"
import { VerificationToken } from "next-auth/adapters"
import { VerificationToken } from "@auth/core/adapters"

import {
SurrealDBAdapter,
Expand Down Expand Up @@ -55,7 +55,7 @@ export const config = (
},
async verificationToken({ identifier, token }) {
const surreal = await clientPromise
const tokens = await surreal.query<VerificationToken[]>(
const tokens = await surreal.query<{ indetifier: string, expires: string, token: string, id: string }[]>(
`SELECT *
FROM verification_token
WHERE identifier = $identifier
Expand Down
15 changes: 9 additions & 6 deletions packages/adapter-surrealdb/tests/index.test.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
import Surreal from "surrealdb.js"
import { runBasicTests } from "@next-auth/adapter-test"
import { runBasicTests } from "@auth/adapter-test"

import { config } from "./common"

const clientPromise = new Promise<Surreal>(async (resolve, reject) => {
const db = new Surreal("http://localhost:8000/rpc")
const db = new Surreal();
try {
await db.signin({
user: "test",
pass: "test",
await db.connect('http://0.0.0.0:8000/rpc', {
ns: "test",
db: "test",
auth: {
user: "test",
pass: "test",
}
})
await db.use("test", "test")
resolve(db)
} catch (e) {
reject(e)
Expand Down