-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.ts
More file actions
64 lines (60 loc) · 1.75 KB
/
server.ts
File metadata and controls
64 lines (60 loc) · 1.75 KB
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import { logDevReady } from "@remix-run/cloudflare";
import { createPagesFunctionHandler } from "@remix-run/cloudflare-pages";
import * as build from "@remix-run/dev/server-build";
import { createSessionController } from "~/lib/session";
import { createModels } from "~/modules/db/models";
import { createDatabase } from "~/modules/db";
import { EasyPost } from "~/modules/easypost";
import { Authorization } from "~/modules/auth";
import { BTCPay } from "~/modules/btcpay";
import { Deposits } from "~/modules/deposits";
if (process.env.NODE_ENV === "development") {
logDevReady(build);
}
export const onRequest = createPagesFunctionHandler<Env>({
build,
mode: build.mode,
getLoadContext: async ({ request, env, waitUntil }) => {
const db = createDatabase(env.DB);
const sessionController = await createSessionController(
env.cache,
request.headers.get("cookie"),
{
secure: request.url.startsWith("https://"),
secrets: [env.SESSION_SECRET],
maxAge: 6 * 60 * 60,
sameSite: "strict",
name: "__session",
httpOnly: true,
path: "/",
}
);
const models = createModels(db);
const btcpay = new BTCPay(models, env);
return {
env,
models,
btcpay,
waitUntil,
...sessionController,
deposits: new Deposits(models, btcpay),
auth: new Authorization(
request,
sessionController,
models,
sessionController.session.get("userId")
),
easypost: new EasyPost(
env.EASYPOST_API_KEY,
parseInt(env.FEE_PERCENTAGE),
models,
btcpay,
waitUntil,
{
usps: env.EASYPOST_USPS_CARRIER_ID,
ups: env.EASYPOST_UPS_CARRIER_ID,
}
),
};
},
});