Skip to content

Commit

Permalink
duplex now works with closure
Browse files Browse the repository at this point in the history
  • Loading branch information
Dnaganog committed Aug 9, 2019
1 parent c341ebf commit 65cf623
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 16 deletions.
15 changes: 8 additions & 7 deletions examples/firecomm/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,13 @@ const newClient = stub.clientStream({meta: 'data'}, [interceptorProvider])
// console.log({ err });
// }));

// const duplexStream = stub.bidiChat({meta: 'data'}, [interceptorProvider]).send({ message: "from client" }).on(({message}) => {
// console.log(message);
// duplexStream.send({ message: "from client2" });
// }).catch((err => {
// console.log({ err });
// }));
// };
const duplexStream = stub.bidiChat({meta: 'data'}, [interceptorProvider])
.send({ message: "from client" })
.on(({message}) => {
console.log(message);
duplexStream.send({ message: "from client2" });
}).catch((err => {
console.log({ err });
}));

// testBidiChat();
14 changes: 5 additions & 9 deletions lib/clientCalls/duplexCall.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,17 @@ module.exports = function duplexCall(that, methodName, first, second) {
metadata = generateMeta(second);
}
};
const duplex = that[methodName](metadata, interceptors);
const duplexObj = {
send: function(message) {
const sender = that[methodName](metadata, interceptors);
sender.write(message, null, () => {
// this.sender.write(message)
});
send: function(message, flags, flushCallback) {
duplex.write(message, flags, flushCallback);
return duplexObj;
},
catch: (first) => {
if (typeof first !== 'function') {
throw new Error('Unary Call: catch takes a callback')
}
const listener = that[methodName](metadata, interceptors);
listener.on('error', first);
duplex.on('error', first);
return duplexObj;
},
on: (first, second) => {
Expand All @@ -45,8 +42,7 @@ module.exports = function duplexCall(that, methodName, first, second) {
} else {
listenerCallback = second;
}
const listener = that[methodName](metadata, interceptors);
listener.on('data', listenerCallback);
duplex.on('data', listenerCallback);
return duplexObj;
}
}
Expand Down

0 comments on commit 65cf623

Please sign in to comment.