From 876595458e297b1473d78c2a86832db39d5bac75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Parpaillon?= Date: Fri, 10 Nov 2017 10:54:38 +0100 Subject: [PATCH] Handle invalid json response When receiving an invalid json string, catch the json error generated and transmit to callback. --- src/client.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/client.js b/src/client.js index 5f7a386..9cd9f2a 100644 --- a/src/client.js +++ b/src/client.js @@ -272,11 +272,20 @@ module.exports = function (classes){ response.on('end', function responseEnd(){ if (response.statusCode !== 200) { - callback(new Error('"' + response.statusCode + '"' + data)) - ; + callback(new Error('"' + response.statusCode + '"' + data)); return; } - var decoded = JSON.parse(data); + + var decoded; + try { + decoded = JSON.parse(data); + } catch (error) { + decoded = { + error: error, + result: null + }; + } + if (_.isFunction(callback)) { if (!decoded.error) { decoded.error = null;