summaryrefslogtreecommitdiff
path: root/app/src/hooks.server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/hooks.server.ts')
-rw-r--r--app/src/hooks.server.ts26
1 files changed, 20 insertions, 6 deletions
diff --git a/app/src/hooks.server.ts b/app/src/hooks.server.ts
index 79535f9..8439eb3 100644
--- a/app/src/hooks.server.ts
+++ b/app/src/hooks.server.ts
@@ -1,16 +1,30 @@
import { getDbConnection } from "$lib/server/db";
+import { getS3Client } from "$lib/server/s3";
import { validateSessionToken } from "$lib/server/sessions";
-import { redirect, type Handle } from "@sveltejs/kit";
+import { type Handle } from "@sveltejs/kit";
import { sequence } from "@sveltejs/kit/hooks";
const dbHandle = (async ({ event, resolve }) => {
const dbConn = await getDbConnection();
- event.locals = { dbConn };
+ event.locals.dbConn = dbConn;
- const response = await resolve(event);
- dbConn.release();
+ try {
+ return await resolve(event);
+ } finally {
+ dbConn.release();
+ }
+}) satisfies Handle;
- return response;
+// FIXME: Kind of stupid to load for every request. Should probs move handler to $lib and import for relevant routes.
+const s3Handle = (async ({ event, resolve }) => {
+ const s3Client = getS3Client();
+ event.locals.s3Client = s3Client;
+
+ try {
+ return await resolve(event);
+ } finally {
+ s3Client.destroy();
+ }
}) satisfies Handle;
const sessionHandle = (async ({ event, resolve }) => {
@@ -25,4 +39,4 @@ const sessionHandle = (async ({ event, resolve }) => {
return resolve(event);
}) satisfies Handle;
-export const handle = sequence(dbHandle, sessionHandle);
+export const handle = sequence(dbHandle, s3Handle, sessionHandle);