small tweaks on relayConnect.

This commit is contained in:
fiatjaf
2021-12-30 15:02:05 -03:00
parent 800beb37f1
commit ce214ebbab
2 changed files with 20 additions and 15 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "nostr-tools",
"version": "0.12.3",
"version": "0.12.4",
"description": "Tools for making a Nostr client.",
"repository": {
"type": "git",

View File

@@ -13,7 +13,7 @@ export function normalizeRelayURL(url) {
return [host, ...qs].join('?')
}
export function relayConnect(url, onNotice) {
export function relayConnect(url, onNotice = () => {}, onError = () => {}) {
url = normalizeRelayURL(url)
var ws, resolveOpen, untilOpen, wasClosed
@@ -46,8 +46,9 @@ export function relayConnect(url, onNotice) {
}
}
}
ws.onerror = () => {
ws.onerror = (err) => {
console.log('error connecting to relay', url)
onError(err)
}
ws.onclose = () => {
resetOpenState()
@@ -146,22 +147,26 @@ export function relayConnect(url, onNotice) {
return {
url,
sub,
async publish(event, statusCallback = status => {}) {
async publish(event, statusCallback) {
try {
await trySend(['EVENT', event])
statusCallback(0)
let {unsub} = sub(
{
cb: () => {
statusCallback(1)
if (statusCallback) {
statusCallback(0)
let {unsub} = sub(
{
cb: () => {
statusCallback(1)
unsub()
clearTimeout(willUnsub)
},
filter: {id: event.id}
},
filter: {id: event.id}
},
`monitor-${event.id.slice(0, 5)}`
)
setTimeout(unsub, 5000)
`monitor-${event.id.slice(0, 5)}`
)
let willUnsub = setTimeout(unsub, 5000)
}
} catch (err) {
statusCallback(-1)
if (statusCallback) statusCallback(-1)
}
},
close() {