try-catch the InternalRelay req's

This commit is contained in:
Alex Gleason 2024-04-25 16:36:20 -05:00
parent f33ad04084
commit 60ca3652bb
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
4 changed files with 28 additions and 26 deletions

View File

@ -16,7 +16,7 @@
"exclude": ["./public"],
"imports": {
"@/": "./src/",
"@nostrify/nostrify": "jsr:@nostrify/nostrify@^0.14.0",
"@nostrify/nostrify": "jsr:@nostrify/nostrify@^0.14.2",
"@std/cli": "jsr:@std/cli@^0.223.0",
"@std/json": "jsr:@std/json@^0.223.0",
"@std/streams": "jsr:@std/streams@^0.223.0",

View File

@ -68,6 +68,7 @@ const streamingController: AppController = (c) => {
const filter = await topicToFilter(stream, c.req.query(), pubkey);
if (!filter) return;
try {
for await (const msg of Storages.pubsub.req([filter], { signal: controller.signal })) {
if (msg[0] === 'EVENT') {
const [event] = await hydrateEvents({
@ -91,6 +92,9 @@ const streamingController: AppController = (c) => {
}
}
}
} catch (e) {
debug('streaming error:', e);
}
};
socket.onclose = () => {

View File

@ -77,11 +77,15 @@ function connectStream(socket: WebSocket) {
send(['EOSE', subId]);
try {
for await (const msg of Storages.pubsub.req(filters, { signal: controller.signal })) {
if (msg[0] === 'EVENT') {
send(['EVENT', subId, msg[2]]);
}
}
} catch (_e) {
controllers.delete(subId);
}
}
/** Handle EVENT. Store the event. */

View File

@ -18,12 +18,6 @@ type EventStub = TypeFest.SetOptional<EventTemplate, 'content' | 'created_at' |
/** Publish an event through the pipeline. */
async function createEvent(t: EventStub, c: AppContext): Promise<NostrEvent> {
const pubkey = c.get('pubkey');
if (!pubkey) {
throw new HTTPException(401);
}
const signer = new APISigner(c);
const event = await signer.signEvent({