From 299a1a0db0e2bac7e03fa671d6ea74094423a2bc Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Thu, 17 Aug 2023 15:41:27 -0500 Subject: [PATCH] Refactor some code that uses getFilters to import the whole module under a namespace --- src/controllers/api/accounts.ts | 4 ++-- src/controllers/nostr/relay.ts | 6 +++--- src/mixer.ts | 8 ++++---- src/queries.ts | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/controllers/api/accounts.ts b/src/controllers/api/accounts.ts index 0952141..544447b 100644 --- a/src/controllers/api/accounts.ts +++ b/src/controllers/api/accounts.ts @@ -1,7 +1,7 @@ import { type AppController } from '@/app.ts'; import { type Filter, findReplyTag, z } from '@/deps.ts'; import { publish } from '@/client.ts'; -import { getFilters } from '@/mixer.ts'; +import * as mixer from '@/mixer.ts'; import { getAuthor, getFollows } from '@/queries.ts'; import { jsonMetaContentSchema } from '@/schemas/nostr.ts'; import { signEvent } from '@/sign.ts'; @@ -117,7 +117,7 @@ const accountStatusesController: AppController = async (c) => { filter['#t'] = [tagged]; } - let events = await getFilters([filter]); + let events = await mixer.getFilters([filter]); events.sort(eventDateComparator); if (exclude_replies) { diff --git a/src/controllers/nostr/relay.ts b/src/controllers/nostr/relay.ts index b4d91d1..24316e7 100644 --- a/src/controllers/nostr/relay.ts +++ b/src/controllers/nostr/relay.ts @@ -1,4 +1,4 @@ -import { getFilters, insertEvent } from '@/db/events.ts'; +import * as eventsDB from '@/db/events.ts'; import { findUser } from '@/db/users.ts'; import { jsonSchema } from '@/schema.ts'; import { @@ -46,7 +46,7 @@ function connectStream(socket: WebSocket) { } async function handleReq([_, sub, ...filters]: ClientREQ) { - for (const event of await getFilters(prepareFilters(filters))) { + for (const event of await eventsDB.getFilters(prepareFilters(filters))) { send(['EVENT', sub, event]); } send(['EOSE', sub]); @@ -54,7 +54,7 @@ function connectStream(socket: WebSocket) { async function handleEvent([_, event]: ClientEVENT) { if (await findUser({ pubkey: event.pubkey })) { - insertEvent(event); + eventsDB.insertEvent(event); send(['OK', event.id, true, '']); } else { send(['OK', event.id, false, 'blocked: only registered users can post']); diff --git a/src/mixer.ts b/src/mixer.ts index 82b8ba9..aed5311 100644 --- a/src/mixer.ts +++ b/src/mixer.ts @@ -1,7 +1,7 @@ import { type Event, matchFilters } from '@/deps.ts'; -import { getFilters as getFiltersClient } from '@/client.ts'; -import { getFilters as getFiltersDB } from '@/db/events.ts'; +import * as client from '@/client.ts'; +import * as eventsDB from '@/db/events.ts'; import { eventDateComparator } from '@/utils.ts'; import type { DittoFilter, GetFiltersOpts } from '@/types.ts'; @@ -12,8 +12,8 @@ async function getFilters( opts?: GetFiltersOpts, ): Promise[]> { const results = await Promise.allSettled([ - getFiltersClient(filters, opts), - getFiltersDB(filters, opts), + client.getFilters(filters, opts), + eventsDB.getFilters(filters, opts), ]); const events = results diff --git a/src/queries.ts b/src/queries.ts index fd41c6a..7d03c30 100644 --- a/src/queries.ts +++ b/src/queries.ts @@ -1,7 +1,7 @@ import { type Event, type Filter, findReplyTag } from '@/deps.ts'; import { type PaginationParams } from '@/utils.ts'; -import { getFilters as getFiltersMixer } from './mixer.ts'; +import * as mixer from './mixer.ts'; interface GetEventOpts { /** Timeout in milliseconds. */ @@ -20,19 +20,19 @@ const getEvent = async ( if (kind) { filter.kinds = [kind]; } - const [event] = await getFiltersMixer([filter], { limit: 1, timeout }); + const [event] = await mixer.getFilters([filter], { limit: 1, timeout }); return event; }; /** Get a Nostr `set_medatadata` event for a user's pubkey. */ const getAuthor = async (pubkey: string, timeout = 1000): Promise | undefined> => { - const [event] = await getFiltersMixer([{ authors: [pubkey], kinds: [0] }], { timeout }); + const [event] = await mixer.getFilters([{ authors: [pubkey], kinds: [0] }], { timeout }); return event; }; /** Get users the given pubkey follows. */ const getFollows = async (pubkey: string, timeout = 1000): Promise | undefined> => { - const [event] = await getFiltersMixer([{ authors: [pubkey], kinds: [3] }], { timeout }); + const [event] = await mixer.getFilters([{ authors: [pubkey], kinds: [3] }], { timeout }); return event; }; @@ -53,12 +53,12 @@ async function getFeed(pubkey: string, params: PaginationParams): Promise[]> { - return getFiltersMixer([{ kinds: [1], ...params }], { timeout: 5000 }); + return mixer.getFilters([{ kinds: [1], ...params }], { timeout: 5000 }); } async function getAncestors(event: Event<1>, result = [] as Event<1>[]): Promise[]> { @@ -80,7 +80,7 @@ async function getAncestors(event: Event<1>, result = [] as Event<1>[]): Promise } function getDescendants(eventId: string): Promise[]> { - return getFiltersMixer([{ kinds: [1], '#e': [eventId] }], { limit: 200, timeout: 2000 }); + return mixer.getFilters([{ kinds: [1], '#e': [eventId] }], { limit: 200, timeout: 2000 }); } export { getAncestors, getAuthor, getDescendants, getEvent, getFeed, getFollows, getPublicFeed };