mirror of
https://github.com/kmc7468/arkvault.git
synced 2026-11-04 08:10:28 +09:00
31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import { sequence, type ServerInit } from "@sveltejs/kit/hooks";
|
|
import schedule from "node-schedule";
|
|
import { migrateDB } from "#lib/server/db/kysely.ts";
|
|
import { authenticate, setAgentInfo } from "#lib/server/middlewares/index.ts";
|
|
import {
|
|
AuthService,
|
|
ClientService,
|
|
FileDeletionService,
|
|
UploadService,
|
|
} from "#lib/server/services/index.ts";
|
|
|
|
export const init: ServerInit = async () => {
|
|
await migrateDB();
|
|
|
|
schedule.scheduleJob("0 * * * *", async () => {
|
|
// Failures are logged and retried at the next run, so they don't crash the server
|
|
const results = await Promise.allSettled([
|
|
AuthService.cleanupExpiredSessions(),
|
|
ClientService.cleanupExpiredChallenges(),
|
|
UploadService.cleanupExpiredUploadSessions(),
|
|
]);
|
|
results.forEach((result) => {
|
|
if (result.status === "rejected") console.error(result.reason);
|
|
});
|
|
FileDeletionService.schedulePendingFileDeletions();
|
|
});
|
|
FileDeletionService.schedulePendingFileDeletions();
|
|
};
|
|
|
|
export const handle = sequence(setAgentInfo, authenticate);
|