UNPKG

@aikidosec/firewall

Version:

Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks

33 lines (32 loc) 1.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.contextFromRequest = contextFromRequest; const Context_1 = require("../../agent/Context"); const buildRouteFromURL_1 = require("../../helpers/buildRouteFromURL"); const getIPAddressFromRequest_1 = require("../../helpers/getIPAddressFromRequest"); const parseCookies_1 = require("../../helpers/parseCookies"); const getRemoteAddress_1 = require("./getRemoteAddress"); async function contextFromRequest(c) { const { req } = c; const cookieHeader = req.header("cookie"); const existingContext = (0, Context_1.getContext)(); return { method: c.req.method, remoteAddress: (0, getIPAddressFromRequest_1.getIPAddressFromRequest)({ headers: req.header(), remoteAddress: (0, getRemoteAddress_1.getRemoteAddress)(c), }), // Pass the body from the existing context if it's already set, otherwise the body is set in wrapRequestBodyParsing body: existingContext && existingContext.source === "hono" ? existingContext.body : undefined, url: req.url, headers: req.header(), routeParams: req.param(), query: req.query(), /* c8 ignore next */ cookies: cookieHeader ? (0, parseCookies_1.parse)(cookieHeader) : {}, source: "hono", route: (0, buildRouteFromURL_1.buildRouteFromURL)(req.url), }; }