move InMemoryDB to system
This commit is contained in:
parent
f39831dde8
commit
f9302f3917
@ -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);
|
||||
});
|
||||
|
||||
|
16
yarn.lock
16
yarn.lock
@ -3076,6 +3076,7 @@ __metadata:
|
||||
"@stablelib/xchacha20": ^1.0.1
|
||||
"@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
|
||||
@ -3084,6 +3085,7 @@ __metadata:
|
||||
isomorphic-ws: ^5.0.0
|
||||
jest: ^29.5.0
|
||||
jest-environment-jsdom: ^29.5.0
|
||||
lokijs: ^1.5.12
|
||||
ts-jest: ^29.1.0
|
||||
ts-node: ^10.9.1
|
||||
typescript: ^5.2.2
|
||||
@ -3591,6 +3593,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/lokijs@npm:^1.5.14":
|
||||
version: 1.5.14
|
||||
resolution: "@types/lokijs@npm:1.5.14"
|
||||
checksum: e5601952d19f5d6ace6e2b5d06771de0b4319bcb211f30f094c954e445b335a42e6e2de73561b837868f0b25a18e17333f1e7ff84b5523c0ef324c4650a549d6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/magnet-uri@npm:*":
|
||||
version: 5.1.5
|
||||
resolution: "@types/magnet-uri@npm:5.1.5"
|
||||
@ -8170,6 +8179,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lokijs@npm:^1.5.12":
|
||||
version: 1.5.12
|
||||
resolution: "lokijs@npm:1.5.12"
|
||||
checksum: 5cd45facb890048e83977de1451a7b70e1f9e4cfe41c40d2212dfc160df7919b821072f95b10d692f6932c1080193e0715e8fe18dee332f04da4fda0f08984b6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
|
||||
version: 1.4.0
|
||||
resolution: "loose-envify@npm:1.4.0"
|
||||
|
Loading…
x
Reference in New Issue
Block a user