You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
895 B
26 lines
895 B
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
exports.fixRequestBody = void 0; |
|
const querystring = require("querystring"); |
|
/** |
|
* Fix proxied body if bodyParser is involved. |
|
*/ |
|
function fixRequestBody(proxyReq, req) { |
|
const requestBody = req.body; |
|
if (!requestBody) { |
|
return; |
|
} |
|
const contentType = proxyReq.getHeader('Content-Type'); |
|
const writeBody = (bodyData) => { |
|
// deepcode ignore ContentLengthInCode: bodyParser fix |
|
proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData)); |
|
proxyReq.write(bodyData); |
|
}; |
|
if (contentType && contentType.includes('application/json')) { |
|
writeBody(JSON.stringify(requestBody)); |
|
} |
|
if (contentType === 'application/x-www-form-urlencoded') { |
|
writeBody(querystring.stringify(requestBody)); |
|
} |
|
} |
|
exports.fixRequestBody = fixRequestBody;
|
|
|