From 182f70c50fa5d08afaa89be927c702161ce843ad Mon Sep 17 00:00:00 2001 From: Luciano Ratamero Date: Mon, 25 May 2020 16:33:11 -0300 Subject: [PATCH 1/4] Check if response headers' content-type starts with "application/json" --- __tests__/middleware.test.js | 2 +- lib/middleware.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/__tests__/middleware.test.js b/__tests__/middleware.test.js index 8543c32..c843a9f 100644 --- a/__tests__/middleware.test.js +++ b/__tests__/middleware.test.js @@ -55,7 +55,7 @@ describe('apiMiddleware', () => { it('Should dispatch action success and return the data body - json', async () => { function get() { - return 'application/json'; + return 'application/json; charset=utf-8'; } const body = { diff --git a/lib/middleware.js b/lib/middleware.js index 7e8bbb2..7601870 100644 --- a/lib/middleware.js +++ b/lib/middleware.js @@ -50,7 +50,7 @@ export default function apiMiddleware({ dispatch, getState }) { if ( response.headers && typeof response.headers.get === 'function' && - response.headers.get('content-type') === 'application/json' + response.headers.get('content-type').startsWith('application/json') ) { response.json().then(data => { response.data = data; // from backend response @@ -67,7 +67,7 @@ export default function apiMiddleware({ dispatch, getState }) { if ( error.headers && typeof error.headers.get === 'function' && - error.headers.get('content-type') === 'application/json' + error.headers.get('content-type').startsWith('application/json') ) { error.json().then(data => { error.data = data; // form backend error From 0b8081b5ac9ecc1c6e19fdeeeca116450c2ca503 Mon Sep 17 00:00:00 2001 From: Luciano Ratamero Date: Mon, 25 May 2020 16:34:20 -0300 Subject: [PATCH 2/4] Add nvmrc --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..b009dfb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/* From 5e5584401577de60186f3a968141654806ce1368 Mon Sep 17 00:00:00 2001 From: Luciano Ratamero Date: Mon, 25 May 2020 16:39:54 -0300 Subject: [PATCH 3/4] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d992015..80e8ceb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-redux-api-tools", - "version": "2.1.1", + "version": "2.1.2", "description": "Middleware and helpers to improve the React-Redux flow when communicating with APIs.", "main": "index.js", "scripts": { From b82316046ae4691644a1ed9c6469b223bff30b82 Mon Sep 17 00:00:00 2001 From: Luciano Ratamero Date: Mon, 25 May 2020 16:41:44 -0300 Subject: [PATCH 4/4] Make dist build --- dist/api.js | 2 +- dist/middleware.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/api.js b/dist/api.js index ffeed4f..c21a357 100644 --- a/dist/api.js +++ b/dist/api.js @@ -11,7 +11,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function buildRequest(url, requestData) { var request = new Request(url, _objectSpread({}, requestData)); diff --git a/dist/middleware.js b/dist/middleware.js index 57c08e9..27a4450 100644 --- a/dist/middleware.js +++ b/dist/middleware.js @@ -62,7 +62,7 @@ function apiMiddleware(_ref) { return new Promise(function (resolve, reject) { apiCallFunction(dispatch).then(function (response) { // if it's a json response, we unpack and parse it - if (response.headers && typeof response.headers.get === 'function' && response.headers.get('content-type') === 'application/json') { + if (response.headers && typeof response.headers.get === 'function' && response.headers.get('content-type').startsWith('application/json')) { response.json().then(function (data) { response.data = data; // from backend response @@ -83,7 +83,7 @@ function apiMiddleware(_ref) { } }).catch(function (error) { // if it's a json response, we unpack and parse it - if (error.headers && typeof error.headers.get === 'function' && error.headers.get('content-type') === 'application/json') { + if (error.headers && typeof error.headers.get === 'function' && error.headers.get('content-type').startsWith('application/json')) { error.json().then(function (data) { error.data = data; // form backend error