@aikidosec/firewall
Version:
Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks
28 lines (27 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.contextFromRequest = contextFromRequest;
const buildRouteFromURL_1 = require("../../helpers/buildRouteFromURL");
const getIPAddressFromRequest_1 = require("../../helpers/getIPAddressFromRequest");
const parseCookies_1 = require("../../helpers/parseCookies");
function contextFromRequest(ctx) {
var _a;
return {
method: ctx.request.method,
remoteAddress: (0, getIPAddressFromRequest_1.getIPAddressFromRequest)({
headers: ctx.request.headers,
remoteAddress: (_a = ctx.request.socket) === null || _a === void 0 ? void 0 : _a.remoteAddress,
}),
// Body is not available by default in Koa, only if a body parser is used
body: ctx.request.body ? ctx.request.body : undefined,
url: ctx.request.href,
headers: ctx.request.headers,
// Only available if e.g. koa-router is used
routeParams: ctx.params ? ctx.params : {},
query: ctx.request.query,
cookies: ctx.req.headers.cookie ? (0, parseCookies_1.parse)(ctx.req.headers.cookie) : {},
source: "koa",
route: (0, buildRouteFromURL_1.buildRouteFromURL)(ctx.request.href),
subdomains: ctx.request.subdomains,
};
}