move InMemoryDB to system
This commit is contained in:
@ -15,7 +15,6 @@ import { addEventToFuzzySearch } from "@/Db/FuzzySearch";
|
||||
import IndexedDBWorker from "@/Db/IndexedDB?worker";
|
||||
import { LoginStore } from "@/Utils/Login";
|
||||
import { hasWasm, WasmOptimizer } from "@/Utils/wasm";
|
||||
import inMemoryDB from "@/Cache/InMemoryDB"; // move to system or pass alreadyHave fn to system?
|
||||
|
||||
export const indexedDB = Comlink.wrap(new IndexedDBWorker());
|
||||
/**
|
||||
@ -38,7 +37,6 @@ System.on("auth", async (c, r, cb) => {
|
||||
});
|
||||
|
||||
System.on("event", (_, ev) => {
|
||||
inMemoryDB.handleEvent(ev);
|
||||
addEventToFuzzySearch(ev);
|
||||
socialGraphInstance.handleEvent(ev);
|
||||
if (CONFIG.useIndexedDBEvents && socialGraphInstance.getFollowDistance(ev.pubkey) <= 2) {
|
||||
@ -47,7 +45,6 @@ System.on("event", (_, ev) => {
|
||||
});
|
||||
|
||||
System.on("request", (filter: ReqFilter) => {
|
||||
inMemoryDB.find(filter, e => System.HandleEvent(e));
|
||||
if (CONFIG.useIndexedDBEvents) {
|
||||
indexedDB.find(
|
||||
filter,
|
||||
|
@ -21,6 +21,7 @@
|
||||
"@peculiar/webcrypto": "^1.4.3",
|
||||
"@types/debug": "^4.1.8",
|
||||
"@types/jest": "^29.5.1",
|
||||
"@types/lokijs": "^1.5.14",
|
||||
"@types/node": "^20.5.9",
|
||||
"@types/uuid": "^9.0.2",
|
||||
"@types/ws": "^8.5.5",
|
||||
@ -39,6 +40,7 @@
|
||||
"debug": "^4.3.4",
|
||||
"eventemitter3": "^5.0.1",
|
||||
"isomorphic-ws": "^5.0.0",
|
||||
"lokijs": "^1.5.12",
|
||||
"uuid": "^9.0.0",
|
||||
"ws": "^8.14.0"
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ID, ReqFilter as Filter, STR, TaggedNostrEvent, UID } from "@snort/system";
|
||||
import { ID, ReqFilter as Filter, STR, TaggedNostrEvent, UID } from ".";
|
||||
import loki from "lokijs";
|
||||
|
||||
type PackedNostrEvent = {
|
||||
@ -116,13 +116,6 @@ class InMemoryDB {
|
||||
remove(eventId: string): void {
|
||||
const id = ID(eventId);
|
||||
this.eventsCollection.findAndRemove({ id });
|
||||
if (this.idb) {
|
||||
try {
|
||||
this.idb.events.where({ id: eventId }).delete();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
removeOldest(): void {
|
@ -10,7 +10,7 @@ import { NostrEvent, ReqCommand, ReqFilter, TaggedNostrEvent, u256 } from "./nos
|
||||
import { RelayInfo } from "./relay-info";
|
||||
import EventKind from "./event-kind";
|
||||
import { getHex64 } from "./utils";
|
||||
import inMemoryDB from "@snort/app/src/Cache/InMemoryDB";
|
||||
import inMemoryDB from "./InMemoryDB";
|
||||
|
||||
/**
|
||||
* Relay settings
|
||||
|
@ -26,6 +26,7 @@ import { RelayCache, RelayMetadataLoader } from "./outbox-model";
|
||||
import { Optimizer, DefaultOptimizer } from "./query-optimizer";
|
||||
import { trimFilters } from "./request-trim";
|
||||
import { NostrConnectionPool } from "./nostr-connection-pool";
|
||||
import inMemoryDB from "./InMemoryDB";
|
||||
|
||||
export interface NostrSystemEvents {
|
||||
change: (state: SystemSnapshot) => void;
|
||||
@ -167,6 +168,7 @@ export class NostrSystem extends EventEmitter<NostrSystemEvents> implements Syst
|
||||
|
||||
// internal handler for on-event
|
||||
this.on("event", (sub, ev) => {
|
||||
inMemoryDB.handleEvent(ev);
|
||||
for (const [, v] of this.Queries) {
|
||||
v.handleEvent(sub, ev);
|
||||
}
|
||||
@ -317,6 +319,7 @@ export class NostrSystem extends EventEmitter<NostrSystemEvents> implements Syst
|
||||
qSend.filters = fNew;
|
||||
|
||||
fNew.forEach(f => {
|
||||
inMemoryDB.find(f, e => this.emit("event", "*", e));
|
||||
this.emit("request", f);
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user