30 lines
804 B
JavaScript
30 lines
804 B
JavaScript
'use strict';
|
|
|
|
const helmet = require('helmet');
|
|
const { promisify } = require('util');
|
|
|
|
const koaHelmet = function () {
|
|
const helmetPromise = promisify(helmet.apply(null, arguments));
|
|
|
|
const middleware = (ctx, next) => {
|
|
return helmetPromise(ctx.req, ctx.res).then(next);
|
|
};
|
|
middleware._name = 'helmet';
|
|
return middleware;
|
|
};
|
|
|
|
Object.keys(helmet).forEach(function (helmetMethod) {
|
|
koaHelmet[helmetMethod] = function () {
|
|
const methodPromise = promisify(helmet[helmetMethod].apply(null, arguments));
|
|
|
|
return (ctx, next) => {
|
|
return methodPromise(ctx.req, ctx.res).then(next);
|
|
};
|
|
};
|
|
Object.keys(helmet[helmetMethod]).forEach((methodExports) => {
|
|
koaHelmet[helmetMethod][methodExports] = helmet[helmetMethod][methodExports];
|
|
});
|
|
});
|
|
|
|
module.exports = koaHelmet;
|