UNPKG

@coolio/http

Version:
42 lines 2.13 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var isNil_1 = __importDefault(require("lodash/isNil")); var isString_1 = __importDefault(require("lodash/isString")); var isBuffer_1 = __importDefault(require("lodash/isBuffer")); var helpers_1 = require("./helpers"); var urlEncoding_helper_1 = require("./helpers/urlEncoding.helper"); var contentType_1 = require("./contentType"); var formData_1 = require("./formData"); exports.bodySerializer = function (_a) { var bodyCasing = (_a === void 0 ? {} : _a).bodyCasing; var caseConverter = helpers_1.getCaseConverter(bodyCasing); var bodySerializers = { JSON: function (body) { return JSON.stringify(caseConverter(body)); }, URL_ENCODED: function (body) { return urlEncoding_helper_1.urlEncode(caseConverter(body)); }, MULTIPART: function (body) { return formData_1.CFormData.from(caseConverter(body)); }, TEXT: function (body) { return String(body); }, }; return function (options) { var contentTypeHeader = helpers_1.getHeader(options.headers, 'content-type') || ''; var contentType = contentTypeHeader.split(';') .map(function (type) { return type.trim().toLowerCase(); }); var body = options.body; if (isNil_1.default(body) || isString_1.default(body) || isBuffer_1.default(body) || formData_1.CFormData.isFormData(body)) { return body; } if (typeof body === 'object') { for (var _i = 0, contentType_2 = contentType; _i < contentType_2.length; _i++) { var type = contentType_2[_i]; var serializedBody = contentType_1.switchContentType(type, bodySerializers); if (serializedBody) { return serializedBody(body); } } } throw new Error("Can not serialize request body. Content-Type \"" + contentTypeHeader + "\""); }; }; //# sourceMappingURL=bodySerializer.js.map