UNPKG

@auth/d1-adapter

Version:

A Cloudflare D1 adapter for Auth.js

62 lines (57 loc) 1.76 kB
import type { D1Database } from "./index.js" export const upSQLStatements = [ `CREATE TABLE IF NOT EXISTS "accounts" ( "id" text NOT NULL, "userId" text NOT NULL DEFAULT NULL, "type" text NOT NULL DEFAULT NULL, "provider" text NOT NULL DEFAULT NULL, "providerAccountId" text NOT NULL DEFAULT NULL, "refresh_token" text DEFAULT NULL, "access_token" text DEFAULT NULL, "expires_at" number DEFAULT NULL, "token_type" text DEFAULT NULL, "scope" text DEFAULT NULL, "id_token" text DEFAULT NULL, "session_state" text DEFAULT NULL, "oauth_token_secret" text DEFAULT NULL, "oauth_token" text DEFAULT NULL, PRIMARY KEY (id) );`, `CREATE TABLE IF NOT EXISTS "sessions" ( "id" text NOT NULL, "sessionToken" text NOT NULL, "userId" text NOT NULL DEFAULT NULL, "expires" datetime NOT NULL DEFAULT NULL, PRIMARY KEY (sessionToken) );`, `CREATE TABLE IF NOT EXISTS "users" ( "id" text NOT NULL DEFAULT '', "name" text DEFAULT NULL, "email" text DEFAULT NULL, "emailVerified" datetime DEFAULT NULL, "image" text DEFAULT NULL, PRIMARY KEY (id) );`, `CREATE TABLE IF NOT EXISTS "verification_tokens" ( "identifier" text NOT NULL, "token" text NOT NULL DEFAULT NULL, "expires" datetime NOT NULL DEFAULT NULL, PRIMARY KEY (token) );`, ] export const down = [ `DROP TABLE IF EXISTS "accounts";`, `DROP TABLE IF EXISTS "sessions";`, `DROP TABLE IF EXISTS "users";`, `DROP TABLE IF EXISTS "verification_tokens";`, ] async function up(db: D1Database) { upSQLStatements.forEach(async (sql) => { try { await db.prepare(sql).run() } catch (e: any) { console.error(e.cause?.message, e.message) } }) } export { up }