From d5b4a3218ebab28c54bd8ff39ade0c705698be84 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 22 May 2024 12:56:54 -0700 Subject: [PATCH] Handle socket errors --- build.sh | 5 +++++ package-lock.json | 4 ++-- packages/feeds/compiler.ts | 1 - packages/feeds/package.json | 2 +- packages/net/ConnectionMeta.ts | 11 +++++------ packages/net/Socket.ts | 3 ++- packages/net/package.json | 2 +- watch.sh | 3 ++- 8 files changed, 18 insertions(+), 13 deletions(-) create mode 100755 build.sh diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..8a1e712 --- /dev/null +++ b/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +for package in $(ls packages); do + ./build_and_link.sh $package +done diff --git a/package-lock.json b/package-lock.json index 49f8aed..ccf6e28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3059,7 +3059,7 @@ }, "packages/feeds": { "name": "@welshman/feeds", - "version": "0.0.6", + "version": "0.0.7", "license": "MIT", "dependencies": { "@welshman/util": "0.0.9" @@ -3096,7 +3096,7 @@ }, "packages/net": { "name": "@welshman/net", - "version": "0.0.8", + "version": "0.0.9", "license": "MIT", "dependencies": { "@welshman/lib": "0.0.6", diff --git a/packages/feeds/compiler.ts b/packages/feeds/compiler.ts index fc114c9..a5d9a13 100644 --- a/packages/feeds/compiler.ts +++ b/packages/feeds/compiler.ts @@ -230,7 +230,6 @@ export class FeedCompiler { if (event) { for (const feed of feedsFromTags(Tags.fromEvent(event), mappings)) { - feeds.push(feed) } } diff --git a/packages/feeds/package.json b/packages/feeds/package.json index fec74cb..8924238 100644 --- a/packages/feeds/package.json +++ b/packages/feeds/package.json @@ -1,6 +1,6 @@ { "name": "@welshman/feeds", - "version": "0.0.6", + "version": "0.0.7", "author": "hodlbod", "license": "MIT", "description": "Utilities for building dynamic nostr feeds.", diff --git a/packages/net/ConnectionMeta.ts b/packages/net/ConnectionMeta.ts index e41243d..52b98a1 100644 --- a/packages/net/ConnectionMeta.ts +++ b/packages/net/ConnectionMeta.ts @@ -159,12 +159,11 @@ export class ConnectionMeta { getSpeed = () => this.responseCount ? this.responseTimer / this.responseCount : 0 getStatus = () => { - if (this.authStatus === AuthStatus.Unauthorized) return ConnectionStatus.Unauthorized - if (this.authStatus === AuthStatus.Forbidden) return ConnectionStatus.Forbidden - if (this.lastOpen === 0) return ConnectionStatus.Closed - if (this.lastFault > this.lastOpen) return ConnectionStatus.Error - if (this.lastClose > this.lastOpen) return ConnectionStatus.Closed - if (this.getSpeed() > 1000) return ConnectionStatus.Slow + if (this.authStatus === AuthStatus.Unauthorized) return ConnectionStatus.Unauthorized + if (this.authStatus === AuthStatus.Forbidden) return ConnectionStatus.Forbidden + if (this.lastFault && this.lastFault > this.lastOpen) return ConnectionStatus.Error + if (this.lastClose > this.lastOpen) return ConnectionStatus.Closed + if (this.getSpeed() > 1000) return ConnectionStatus.Slow return ConnectionStatus.Ok } diff --git a/packages/net/Socket.ts b/packages/net/Socket.ts index f98c3e8..b7fec13 100644 --- a/packages/net/Socket.ts +++ b/packages/net/Socket.ts @@ -59,6 +59,7 @@ export class Socket { } onError = () => { + this.failedToConnect = true this.opts.onError() this.disconnect() } @@ -105,7 +106,7 @@ export class Socket { if (this.ws) { const currentWs = this.ws - this.ready.then(() => currentWs.close()) + this.ready.finally(() => currentWs.close()) this.ready = defer() this.opts.onClose() this.ws = undefined diff --git a/packages/net/package.json b/packages/net/package.json index 57657d5..3c151f9 100644 --- a/packages/net/package.json +++ b/packages/net/package.json @@ -1,6 +1,6 @@ { "name": "@welshman/net", - "version": "0.0.8", + "version": "0.0.9", "author": "hodlbod", "license": "MIT", "description": "Utilities for connecting with nostr relays.", diff --git a/watch.sh b/watch.sh index 62fa189..ebeffea 100755 --- a/watch.sh +++ b/watch.sh @@ -1,7 +1,8 @@ #!/bin/bash +./build.sh + for package in $(ls packages); do - ./build_and_link.sh $package npx onchange packages/$package -e '**/build/**' -k -- ./build_and_link.sh $package & done