UNPKG

sveltekit-helmet

Version:

Security header middleware collection for SvelteKit

23 lines (22 loc) 912 B
import helmet from "helmet"; function extendResponse(originalResponse) { const res = originalResponse; res.setHeader = res.headers.set.bind(res.headers); res.removeHeader = res.headers.delete.bind(res.headers); return res; } export default (options = {}) => { if ("event" in options) { throw new Error("It appears you have done something like `export const handle = helmet`, but it should be `export const handle = helmet()`."); } const middleware = helmet(options); // `req` is never used, but it's required by the `helmet` middleware const req = {}; return async ({ event, resolve }) => { const response = await resolve(event); const extendedResponse = extendResponse(response); return new Promise((resolve, reject) => { middleware(req, extendedResponse, (err) => err ? reject(err) : resolve(response)); }); }; };