sveltekit-helmet
Version:
Security header middleware collection for SvelteKit
23 lines (22 loc) • 912 B
JavaScript
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));
});
};
};