nappup 1.0.12 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/index.js +3 -1
- package/src/services/nostr-relays.js +14 -12
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -262,7 +262,9 @@ async function maybeUploadStall ({
|
|
|
262
262
|
|
|
263
263
|
const publishStall = async (event) => {
|
|
264
264
|
const signedEvent = await signer.signEvent(event)
|
|
265
|
-
|
|
265
|
+
// App stores are fetching stall events just from primal relay for now
|
|
266
|
+
const relays = [...new Set([...writeRelays, 'wss://relay.primal.net'])]
|
|
267
|
+
return await throttledSendEvent(signedEvent, relays, { pause, log, trailingPause: true })
|
|
266
268
|
}
|
|
267
269
|
|
|
268
270
|
const createdAt = Math.floor(Date.now() / 1000)
|
|
@@ -64,17 +64,14 @@ export class NostrRelays {
|
|
|
64
64
|
// Get events from a list of relays
|
|
65
65
|
async getEvents (filter, relays, timeout = 5000) {
|
|
66
66
|
const events = []
|
|
67
|
-
const resolveOrReject = (resolve, reject, err) => {
|
|
68
|
-
err ? reject(err) : resolve()
|
|
69
|
-
}
|
|
70
67
|
const promises = relays.map(async (url) => {
|
|
71
68
|
let sub
|
|
72
69
|
let isClosed = false
|
|
73
70
|
const p = Promise.withResolvers()
|
|
74
71
|
const timer = maybeUnref(setTimeout(() => {
|
|
75
|
-
sub?.close()
|
|
76
72
|
isClosed = true
|
|
77
|
-
|
|
73
|
+
sub?.close()
|
|
74
|
+
p.reject(new Error(`timeout: ${url}`))
|
|
78
75
|
}, timeout))
|
|
79
76
|
try {
|
|
80
77
|
const relay = await this.#getRelay(url)
|
|
@@ -85,7 +82,8 @@ export class NostrRelays {
|
|
|
85
82
|
onclose: err => {
|
|
86
83
|
clearTimeout(timer)
|
|
87
84
|
if (isClosed) return
|
|
88
|
-
|
|
85
|
+
// may have closed normally, without error
|
|
86
|
+
err ? p.reject(err) : p.resolve()
|
|
89
87
|
},
|
|
90
88
|
oneose: () => {
|
|
91
89
|
clearTimeout(timer)
|
|
@@ -94,12 +92,12 @@ export class NostrRelays {
|
|
|
94
92
|
p.resolve()
|
|
95
93
|
}
|
|
96
94
|
})
|
|
97
|
-
|
|
98
|
-
await p.promise
|
|
99
95
|
} catch (err) {
|
|
100
96
|
clearTimeout(timer)
|
|
101
97
|
p.reject(err)
|
|
102
98
|
}
|
|
99
|
+
|
|
100
|
+
return p.promise
|
|
103
101
|
})
|
|
104
102
|
|
|
105
103
|
const results = await Promise.allSettled(promises)
|
|
@@ -116,22 +114,26 @@ export class NostrRelays {
|
|
|
116
114
|
async sendEvent (event, relays, timeout = 3000) {
|
|
117
115
|
const promises = relays.map(async (url) => {
|
|
118
116
|
let timer
|
|
117
|
+
const p = Promise.withResolvers()
|
|
119
118
|
try {
|
|
120
119
|
timer = maybeUnref(setTimeout(() => {
|
|
121
|
-
|
|
120
|
+
p.reject(new Error(`timeout: ${url}`))
|
|
122
121
|
}, timeout))
|
|
122
|
+
|
|
123
123
|
const relay = await this.#getRelay(url)
|
|
124
124
|
await relay.publish(event)
|
|
125
|
+
p.resolve()
|
|
125
126
|
} catch (err) {
|
|
126
|
-
if (err.message?.startsWith('duplicate:')) return
|
|
127
|
+
if (err.message?.startsWith('duplicate:')) return p.resolve()
|
|
127
128
|
if (err.message?.startsWith('mute:')) {
|
|
128
129
|
console.info(`${url} - ${err.message}`)
|
|
129
|
-
return
|
|
130
|
+
return p.resolve()
|
|
130
131
|
}
|
|
131
|
-
|
|
132
|
+
p.reject(err)
|
|
132
133
|
} finally {
|
|
133
134
|
clearTimeout(timer)
|
|
134
135
|
}
|
|
136
|
+
return p.promise
|
|
135
137
|
})
|
|
136
138
|
|
|
137
139
|
const results = await Promise.allSettled(promises)
|