rpc-websockets icon indicating copy to clipboard operation
rpc-websockets copied to clipboard

Ignore null in result/error

Open kakserpom opened this issue 2 years ago • 2 comments

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

whitebit.com sends "error: null" and I constantly get Server response malformed. Response must include either \"result\"" + " or \"error\", but not both.

Here is the diff that solved my problem:

diff --git a/node_modules/rpc-websockets/dist/lib/client.js b/node_modules/rpc-websockets/dist/lib/client.js
index f07ce1d..2207e56 100644
--- a/node_modules/rpc-websockets/dist/lib/client.js
+++ b/node_modules/rpc-websockets/dist/lib/client.js
@@ -451,6 +451,12 @@ var CommonClient = /*#__PURE__*/function (_EventEmitter) {
         } // reject early since server's response is invalid
 
 
+        if (message.error === null) {
+          delete message.error
+        }if (message.result === null) {
+          delete message.result
+        }
+
         if ("error" in message === "result" in message) _this4.queue[message.id].promise[1](new Error("Server response malformed. Response must include either \"result\"" + " or \"error\", but not both."));
         if (_this4.queue[message.id].timeout) clearTimeout(_this4.queue[message.id].timeout);
         if (message.error) _this4.queue[message.id].promise[1](message.error);else _this4.queue[message.id].promise[0](message.result);

This issue body was partially generated by patch-package.

kakserpom avatar Mar 27 '22 08:03 kakserpom

What's your response json? Does it abide to the spec?

mkozjak avatar Mar 28 '22 19:03 mkozjak

@mkozjak whitebit.com API sends "error: null, response: ..." or "error: ..., response: null".

kakserpom avatar Mar 29 '22 04:03 kakserpom