From 5971d0ace858eebd30afbf4b644457d42acc04dd Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Sat, 22 Jul 2023 09:17:34 -0400 Subject: [PATCH] fix: add _endPeerOnError optional function to conditionally end a peer if there is an error --- src/network.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/network.ts b/src/network.ts index f309ef2..cbdd2c4 100644 --- a/src/network.ts +++ b/src/network.ts @@ -7,11 +7,18 @@ import { uint8ArrayToHexString } from "binconv"; export default class RpcNetwork { private _relaysAvailablePromise?: Promise; private _relaysAvailableResolve?: Function; + constructor(swarm = new Hyperswarm()) { this._swarm = swarm; this.init(); } + private _endPeerOnError?: (peer: any) => Promise; + + set endPeerOnError(value: (peer: any) => Promise) { + this._endPeerOnError = value; + } + private _methods: Map> = new Map>(); get methods(): Map> { @@ -142,7 +149,9 @@ export default class RpcNetwork { const resp = await query.result; if (resp.error) { - relay.end(); + if (await this._endPeerOnError?.(relay)) { + relay.end(); + } return; }