feat: reintroduce drizzle connection
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
|
import type { Pool } from "@neondatabase/serverless";
|
||||||
import type { FetchCreateContextFnOptions } from "@trpc/server/adapters/fetch";
|
import type { FetchCreateContextFnOptions } from "@trpc/server/adapters/fetch";
|
||||||
import type { CreateNextContextOptions } from "@trpc/server/adapters/next";
|
import type { CreateNextContextOptions } from "@trpc/server/adapters/next";
|
||||||
|
import type { NeonDatabase as DrizzleClient } from "drizzle-orm/neon-serverless";
|
||||||
import type { OpenApiMeta } from "trpc-to-openapi";
|
import type { OpenApiMeta } from "trpc-to-openapi";
|
||||||
import { initTRPC, TRPCError } from "@trpc/server";
|
import { initTRPC, TRPCError } from "@trpc/server";
|
||||||
import superjson from "superjson";
|
import superjson from "superjson";
|
||||||
@@ -7,6 +9,7 @@ import { ZodError } from "zod";
|
|||||||
|
|
||||||
import type { Database } from "@kan/db/types/database.types";
|
import type { Database } from "@kan/db/types/database.types";
|
||||||
import type { SupabaseClient } from "@kan/supabase";
|
import type { SupabaseClient } from "@kan/supabase";
|
||||||
|
// import { createDrizzleClient } from "@kan/db/client";
|
||||||
import {
|
import {
|
||||||
createNextApiClient,
|
createNextApiClient,
|
||||||
createTRPCAdminClient,
|
createTRPCAdminClient,
|
||||||
@@ -21,6 +24,13 @@ interface CreateContextOptions {
|
|||||||
user: User | null;
|
user: User | null;
|
||||||
db: SupabaseClient<Database>;
|
db: SupabaseClient<Database>;
|
||||||
adminDb: SupabaseClient<Database>;
|
adminDb: SupabaseClient<Database>;
|
||||||
|
drizzleDb:
|
||||||
|
| (DrizzleClient<
|
||||||
|
typeof import("/Users/henryball/kan/packages/db/dist/schema")
|
||||||
|
> & {
|
||||||
|
$client: Pool;
|
||||||
|
})
|
||||||
|
| null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const createInnerTRPCContext = (opts: CreateContextOptions) => {
|
export const createInnerTRPCContext = (opts: CreateContextOptions) => {
|
||||||
@@ -28,6 +38,7 @@ export const createInnerTRPCContext = (opts: CreateContextOptions) => {
|
|||||||
user: opts.user,
|
user: opts.user,
|
||||||
db: opts.db,
|
db: opts.db,
|
||||||
adminDb: opts.adminDb,
|
adminDb: opts.adminDb,
|
||||||
|
drizzleDb: opts.drizzleDb,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -42,7 +53,9 @@ export const createTRPCContext = async ({
|
|||||||
data: { user },
|
data: { user },
|
||||||
} = await db.auth.getUser();
|
} = await db.auth.getUser();
|
||||||
|
|
||||||
return createInnerTRPCContext({ db, adminDb, user });
|
// const drizzleDb = createDrizzleClient();
|
||||||
|
|
||||||
|
return createInnerTRPCContext({ db, adminDb, user, drizzleDb: null });
|
||||||
};
|
};
|
||||||
|
|
||||||
export const createRESTContext = async ({ req }: CreateNextContextOptions) => {
|
export const createRESTContext = async ({ req }: CreateNextContextOptions) => {
|
||||||
@@ -55,14 +68,16 @@ export const createRESTContext = async ({ req }: CreateNextContextOptions) => {
|
|||||||
: null;
|
: null;
|
||||||
|
|
||||||
if (!accessToken) {
|
if (!accessToken) {
|
||||||
return createInnerTRPCContext({ db, adminDb, user: null });
|
return createInnerTRPCContext({ db, adminDb, user: null, drizzleDb: null });
|
||||||
}
|
}
|
||||||
|
|
||||||
const {
|
const {
|
||||||
data: { user },
|
data: { user },
|
||||||
} = await db.auth.getUser(accessToken);
|
} = await db.auth.getUser(accessToken);
|
||||||
|
|
||||||
return createInnerTRPCContext({ db, adminDb, user });
|
// const drizzleDb = createDrizzleClient();
|
||||||
|
|
||||||
|
return createInnerTRPCContext({ db, adminDb, user, drizzleDb: null });
|
||||||
};
|
};
|
||||||
|
|
||||||
const t = initTRPC
|
const t = initTRPC
|
||||||
|
|||||||
@@ -39,6 +39,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@kan/shared": "workspace:^",
|
"@kan/shared": "workspace:^",
|
||||||
|
"@neondatabase/serverless": "^0.10.4",
|
||||||
"@vercel/postgres": "^0.10.0",
|
"@vercel/postgres": "^0.10.0",
|
||||||
"drizzle-orm": "^0.36.4",
|
"drizzle-orm": "^0.36.4",
|
||||||
"drizzle-zod": "^0.5.1",
|
"drizzle-zod": "^0.5.1",
|
||||||
|
|||||||
@@ -1,9 +1,15 @@
|
|||||||
import { sql } from "@vercel/postgres";
|
import { Pool } from "@neondatabase/serverless";
|
||||||
import { drizzle } from "drizzle-orm/vercel-postgres";
|
import { drizzle } from "drizzle-orm/neon-serverless";
|
||||||
|
|
||||||
import * as schema from "./schema";
|
import * as schema from "./schema";
|
||||||
|
|
||||||
export const db = drizzle({
|
export const createDrizzleClient = () => {
|
||||||
client: sql,
|
const pool = new Pool({
|
||||||
schema,
|
connectionString: process.env.POSTGRES_URL,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return drizzle({
|
||||||
|
client: pool,
|
||||||
|
schema,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
21
pnpm-lock.yaml
generated
21
pnpm-lock.yaml
generated
@@ -257,15 +257,18 @@ importers:
|
|||||||
'@kan/shared':
|
'@kan/shared':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../shared
|
version: link:../shared
|
||||||
|
'@neondatabase/serverless':
|
||||||
|
specifier: ^0.10.4
|
||||||
|
version: 0.10.4
|
||||||
'@vercel/postgres':
|
'@vercel/postgres':
|
||||||
specifier: ^0.10.0
|
specifier: ^0.10.0
|
||||||
version: 0.10.0(utf-8-validate@6.0.3)
|
version: 0.10.0(utf-8-validate@6.0.3)
|
||||||
drizzle-orm:
|
drizzle-orm:
|
||||||
specifier: ^0.36.4
|
specifier: ^0.36.4
|
||||||
version: 0.36.4(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1)
|
version: 0.36.4(@neondatabase/serverless@0.10.4)(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1)
|
||||||
drizzle-zod:
|
drizzle-zod:
|
||||||
specifier: ^0.5.1
|
specifier: ^0.5.1
|
||||||
version: 0.5.1(drizzle-orm@0.36.4(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1))(zod@3.24.0)
|
version: 0.5.1(drizzle-orm@0.36.4(@neondatabase/serverless@0.10.4)(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1))(zod@3.24.0)
|
||||||
zod:
|
zod:
|
||||||
specifier: 'catalog:'
|
specifier: 'catalog:'
|
||||||
version: 3.24.0
|
version: 3.24.0
|
||||||
@@ -1300,6 +1303,9 @@ packages:
|
|||||||
'@mintlify/models': 0.0.25
|
'@mintlify/models': 0.0.25
|
||||||
openapi-types: 12.x
|
openapi-types: 12.x
|
||||||
|
|
||||||
|
'@neondatabase/serverless@0.10.4':
|
||||||
|
resolution: {integrity: sha512-2nZuh3VUO9voBauuh+IGYRhGU/MskWHt1IuZvHcJw6GLjDgtqj/KViKo7SIrLdGLdot7vFbiRRw+BgEy3wT9HA==}
|
||||||
|
|
||||||
'@neondatabase/serverless@0.9.5':
|
'@neondatabase/serverless@0.9.5':
|
||||||
resolution: {integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==}
|
resolution: {integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==}
|
||||||
|
|
||||||
@@ -5912,6 +5918,10 @@ snapshots:
|
|||||||
zod: 3.24.0
|
zod: 3.24.0
|
||||||
zod-to-json-schema: 3.24.1(zod@3.24.0)
|
zod-to-json-schema: 3.24.1(zod@3.24.0)
|
||||||
|
|
||||||
|
'@neondatabase/serverless@0.10.4':
|
||||||
|
dependencies:
|
||||||
|
'@types/pg': 8.11.6
|
||||||
|
|
||||||
'@neondatabase/serverless@0.9.5':
|
'@neondatabase/serverless@0.9.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/pg': 8.11.6
|
'@types/pg': 8.11.6
|
||||||
@@ -7221,8 +7231,9 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
drizzle-orm@0.36.4(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1):
|
drizzle-orm@0.36.4(@neondatabase/serverless@0.10.4)(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
'@neondatabase/serverless': 0.10.4
|
||||||
'@types/pg': 8.11.6
|
'@types/pg': 8.11.6
|
||||||
'@types/react': 18.3.15
|
'@types/react': 18.3.15
|
||||||
'@vercel/postgres': 0.10.0(utf-8-validate@6.0.3)
|
'@vercel/postgres': 0.10.0(utf-8-validate@6.0.3)
|
||||||
@@ -7230,9 +7241,9 @@ snapshots:
|
|||||||
postgres: 3.4.5
|
postgres: 3.4.5
|
||||||
react: 18.3.1
|
react: 18.3.1
|
||||||
|
|
||||||
drizzle-zod@0.5.1(drizzle-orm@0.36.4(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1))(zod@3.24.0):
|
drizzle-zod@0.5.1(drizzle-orm@0.36.4(@neondatabase/serverless@0.10.4)(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1))(zod@3.24.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
drizzle-orm: 0.36.4(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1)
|
drizzle-orm: 0.36.4(@neondatabase/serverless@0.10.4)(@types/pg@8.11.6)(@types/react@18.3.15)(@vercel/postgres@0.10.0(utf-8-validate@6.0.3))(pg@8.13.1)(postgres@3.4.5)(react@18.3.1)
|
||||||
zod: 3.24.0
|
zod: 3.24.0
|
||||||
|
|
||||||
dunder-proto@1.0.0:
|
dunder-proto@1.0.0:
|
||||||
|
|||||||
Reference in New Issue
Block a user