UNPKG

marbles

Version:

Front-end framework for routing, http, and data handling

63 lines (49 loc) 1.57 kB
'use strict'; var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; Object.defineProperty(exports, '__esModule', { value: true }); /* @flow weak */ var _QueryParams = require('../../query_params'); var _QueryParams2 = _interopRequireWildcard(_QueryParams); var CONTENT_TYPE = 'application/x-www-form-urlencoded'; /** * @memberof Marbles.HTTP.Middleware * @desc Serializes the request body if the Content-Type header matches. Deserializes the response body if the Content-Type header matches. */ var FormEncoded = { willSendRequest: function willSendRequest(request) { if (request.multipart) { return; } if (!request.requestBody) { return; } var contentType = request.getRequestHeader('Content-Type'); if (contentType !== CONTENT_TYPE) { return; } var params = request.requestBody; if (!Array.isArray(params)) { params = [params]; } request.requestBody = _QueryParams2['default'].serializeParams(params).substring(1); }, didReceiveResponse: function didReceiveResponse(request) { var contentType = request.getResponseHeader('Content-Type'); if (contentType !== CONTENT_TYPE) { return; } var response = request.xhr.response; var responseData = null; if (!response || typeof response !== 'string') { return; } if (!Array.isArray(responseData)) { responseData = [responseData]; } request.responseData = _QueryParams2['default'].deserializeParams(responseData); } }; exports.CONTENT_TYPE = CONTENT_TYPE; exports['default'] = FormEncoded;