lightning
Version:
Lightning Network client library
29 lines (22 loc) • 611 B
JavaScript
const cancelError = 'Cancelled on client';
/** Get a function that emits an error from a gRPC subscription proxy
{
emitter: <Event Subscription Proxy Object>
subscription: <gRPC Subscription Object>
}
@returns
<Error Emission Function>
*/
module.exports = ({emitter, subscription}) => {
return err => {
subscription.cancel();
if (!!err && err.details === cancelError) {
subscription.removeAllListeners();
}
// Exit early when there are no error listeners
if (!emitter.listenerCount('error')) {
return;
}
return emitter.emit('error', err);
};
};