UNPKG

marbles

Version:

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

45 lines (39 loc) 1.11 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /* @flow weak */ /** * @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 SerializeJSON = { willSendRequest: function willSendRequest(request) { if (request.multipart) { return; } var contentType = request.getRequestHeader('Content-Type'); if (!/\bjson/i.test(contentType)) { return; } var requestBody = request.requestBody; request.requestBody = requestBody ? JSON.stringify(requestBody) : null; }, didReceiveResponse: function didReceiveResponse(request) { var contentType = request.getResponseHeader('Content-Type'); if (!/\bjson/i.test(contentType)) { return; } var responseData = request.xhr.response; request.responseData = null; if (responseData) { try { request.responseData = JSON.parse(responseData); } catch (err) { request.terminate(err); } } } }; exports['default'] = SerializeJSON; module.exports = exports['default'];