at://Press
at main 26 lines 872 B view raw
1import { defineMiddleware } from "astro:middleware"; 2import { migratePdsDraftsToSqlite } from "./lib/drafts"; 3import { PDS_URL } from "./lib/constants"; 4 5let migrated = false; 6 7export const onRequest = defineMiddleware(async (_context, next) => { 8 if (!migrated) { 9 migrated = true; 10 try { 11 await migratePdsDraftsToSqlite(); 12 } catch (err) { 13 console.error("[migration] Failed:", err); 14 } 15 } 16 17 const response = await next(); 18 response.headers.set( 19 "Content-Security-Policy", 20 `default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' ${PDS_URL}; connect-src 'self'; frame-ancestors 'none'` 21 ); 22 response.headers.set("X-Content-Type-Options", "nosniff"); 23 response.headers.set("X-Frame-Options", "DENY"); 24 response.headers.set("Referrer-Policy", "strict-origin-when-cross-origin"); 25 return response; 26});