UNPKG

@aikidosec/firewall

Version:

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

34 lines (33 loc) 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBodyDataType = getBodyDataType; const isJsonContentType_1 = require("../../helpers/isJsonContentType"); /** * Tries to determine the type of the body data based on the content type header. */ function getBodyDataType(headers) { if (typeof headers !== "object" || headers === null) { return; } let contentType = headers["content-type"]; if (!contentType) { return; } if (Array.isArray(contentType)) { // Choose the first content type if there are multiple, express will discard duplicates contentType = contentType[0]; } if ((0, isJsonContentType_1.isJsonContentType)(contentType)) { return "json"; } if (contentType.startsWith("application/x-www-form-urlencoded")) { return "form-urlencoded"; } if (contentType.startsWith("multipart/form-data")) { return "form-data"; } if (contentType.includes("xml")) { return "xml"; } return undefined; }