Skip to content

Commit 3ef9e2a

Browse files
Merge pull request #48 from ncjones/real-error-obj
Make rejected promise always yield error instance
2 parents 80cf08a + c5b2e85 commit 3ef9e2a

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

lib/requests/http.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,21 +88,25 @@ var httpRequest = function (options) {
8888
break;
8989
}
9090
default: // All other statuses are error cases.
91-
var error;
91+
var crmError;
9292
try {
9393
var errorParsed = JSON.parse(rawData);
9494

95-
error = errorParsed.hasOwnProperty('error') && errorParsed.error
95+
crmError = errorParsed.hasOwnProperty('error') && errorParsed.error
9696
? errorParsed.error
9797
: { message: errorParsed.Message };
9898
} catch (e) {
9999
if (rawData.length > 0) {
100-
error = { message: rawData };
100+
crmError = { message: rawData };
101101
}
102102
else {
103-
error = { message: "Unexpected Error" };
103+
crmError = { message: "Unexpected Error" };
104104
}
105105
}
106+
var error = new Error();
107+
Object.keys(crmError).forEach(k => {
108+
error[k] = crmError[k];
109+
})
106110
error.status = res.statusCode;
107111
error.statusText = request.statusText;
108112
errorCallback(error);

0 commit comments

Comments
 (0)