@aikidosec/firewall
Version:
Zen by Aikido is an embedded Web Application Firewall that autonomously protects Node.js apps against common and critical attacks
26 lines (25 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.contextFromRequest = contextFromRequest;
const buildRouteFromURL_1 = require("../../helpers/buildRouteFromURL");
const getIPAddressFromRequest_1 = require("../../helpers/getIPAddressFromRequest");
const isPlainObject_1 = require("../../helpers/isPlainObject");
const parseCookies_1 = require("../../helpers/parseCookies");
function contextFromRequest(req) {
var _a, _b;
return {
method: req.method,
remoteAddress: (0, getIPAddressFromRequest_1.getIPAddressFromRequest)({
headers: req.headers || {},
remoteAddress: (_a = req.socket) === null || _a === void 0 ? void 0 : _a.remoteAddress,
}),
body: req.body ? req.body : undefined,
url: req.href(),
headers: req.headers || {},
routeParams: req.params || {},
query: (0, isPlainObject_1.isPlainObject)(req.query) ? req.query : {},
cookies: ((_b = req.headers) === null || _b === void 0 ? void 0 : _b.cookie) ? (0, parseCookies_1.parse)(req.headers.cookie) : {},
source: "restify",
route: (0, buildRouteFromURL_1.buildRouteFromURL)(req.href()),
};
}