generated from SatooRu65536/tpl-remix-vite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathload-context.ts
27 lines (24 loc) · 900 Bytes
/
load-context.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import type { AppLoadContext } from '@remix-run/cloudflare';
import type { PlatformProxy } from 'wrangler';
import { injectPrismaClient } from '@/services/__prisma.server';
import { Database } from '@/services/database.server';
type Cloudflare = Omit<PlatformProxy<Env>, 'dispose'>;
declare module '@remix-run/cloudflare' {
interface AppLoadContext {
cloudflare: Cloudflare;
__prisma: Awaited<ReturnType<typeof injectPrismaClient>>;
db: Database;
}
}
// ref: https://github.com/chimame/remix-prisma-d1-on-cloudflare-pages/blob/e98cfb57b80e836186ef587a69941b61fe5cd09d/load-context.ts
export async function getLoadContext({ context }: {
request: Request;
context: { cloudflare: Cloudflare };
}): Promise<AppLoadContext> {
const prisma = await injectPrismaClient(context.cloudflare.env.DB);
return {
...context,
__prisma: prisma,
db: new Database(prisma),
};
}