From ae44c08a2a59e8099240ec55eacb789207d97f3a Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sun, 7 Jan 2024 14:54:33 -0600 Subject: [PATCH] Move Reqmeister to a dedicated storage class --- src/pipeline.ts | 3 +-- src/queries.ts | 3 +-- src/storages.ts | 11 +++++++++-- src/{ => storages}/reqmeister.ts | 7 +------ 4 files changed, 12 insertions(+), 12 deletions(-) rename src/{ => storages}/reqmeister.ts (97%) diff --git a/src/pipeline.ts b/src/pipeline.ts index a237b72b..4237652a 100644 --- a/src/pipeline.ts +++ b/src/pipeline.ts @@ -6,9 +6,8 @@ import { findUser } from '@/db/users.ts'; import { Debug, type Event } from '@/deps.ts'; import { isEphemeralKind } from '@/kinds.ts'; import { isLocallyFollowed } from '@/queries.ts'; -import { reqmeister } from '@/reqmeister.ts'; import { updateStats } from '@/stats.ts'; -import { eventsDB, memorelay } from '@/storages.ts'; +import { eventsDB, memorelay, reqmeister } from '@/storages.ts'; import { Sub } from '@/subs.ts'; import { getTagSet } from '@/tags.ts'; import { type EventData } from '@/types.ts'; diff --git a/src/queries.ts b/src/queries.ts index 56a8b679..0ac61a34 100644 --- a/src/queries.ts +++ b/src/queries.ts @@ -1,7 +1,6 @@ -import { eventsDB, memorelay } from '@/storages.ts'; +import { eventsDB, memorelay, reqmeister } from '@/storages.ts'; import { Debug, type Event, findReplyTag } from '@/deps.ts'; import { type AuthorMicrofilter, type DittoFilter, type IdMicrofilter, type Relation } from '@/filter.ts'; -import { reqmeister } from '@/reqmeister.ts'; import { type DittoEvent } from '@/storages/types.ts'; import { getTagSet } from '@/tags.ts'; diff --git a/src/storages.ts b/src/storages.ts index db00b519..a676b318 100644 --- a/src/storages.ts +++ b/src/storages.ts @@ -3,8 +3,9 @@ import { db } from '@/db.ts'; import { EventsDB } from '@/storages/events-db.ts'; import { Memorelay } from '@/storages/memorelay.ts'; import { Optimizer } from '@/storages/optimizer.ts'; +import { Reqmeister } from '@/storages/reqmeister.ts'; import { SearchStore } from '@/storages/search-store.ts'; -import { reqmeister } from '@/reqmeister.ts'; +import { Time } from '@/utils/time.ts'; /** SQLite database to store events this Ditto server cares about. */ const eventsDB = new EventsDB(db); @@ -12,6 +13,12 @@ const eventsDB = new EventsDB(db); /** In-memory data store for cached events. */ const memorelay = new Memorelay({ max: 3000 }); +/** Batches requests for single events. */ +const reqmeister = new Reqmeister({ + delay: Time.seconds(1), + timeout: Time.seconds(1), +}); + /** Main Ditto storage adapter */ const optimizer = new Optimizer({ db: eventsDB, @@ -25,4 +32,4 @@ const searchStore = new SearchStore({ fallback: optimizer, }); -export { eventsDB, memorelay, optimizer, searchStore }; +export { eventsDB, memorelay, optimizer, reqmeister, searchStore }; diff --git a/src/reqmeister.ts b/src/storages/reqmeister.ts similarity index 97% rename from src/reqmeister.ts rename to src/storages/reqmeister.ts index 48b1370d..e1e8d01a 100644 --- a/src/reqmeister.ts +++ b/src/storages/reqmeister.ts @@ -158,9 +158,4 @@ class Reqmeister extends EventEmitter<{ [filterId: string]: (event: Event) => an } } -const reqmeister = new Reqmeister({ - delay: Time.seconds(1), - timeout: Time.seconds(1), -}); - -export { reqmeister }; +export { Reqmeister };