From 35eccf74674c7a03970403ff19caa8280e9b002d Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 30 May 2024 15:04:23 -0700 Subject: [PATCH] Remove indexer from hints, add indexBy --- packages/lib/Tools.ts | 10 ++++++++++ packages/util/Kinds.ts | 2 +- packages/util/Repository.ts | 16 ++++++++-------- packages/util/Router.ts | 9 --------- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/lib/Tools.ts b/packages/lib/Tools.ts index a7acd2a..e1d66f1 100644 --- a/packages/lib/Tools.ts +++ b/packages/lib/Tools.ts @@ -230,6 +230,16 @@ export const groupBy = (f: (x: T) => K, xs: T[]) => { return r } +export const indexBy = (f: (x: T) => K, xs: T[]) => { + const r = new Map() + + for (const x of xs) { + r.set(f(x), x) + } + + return r +} + export const sample = (n: number, xs: T[]) => { const result: T[] = [] const limit = Math.min(n, xs.length) diff --git a/packages/util/Kinds.ts b/packages/util/Kinds.ts index 8528acf..f25f7ac 100644 --- a/packages/util/Kinds.ts +++ b/packages/util/Kinds.ts @@ -127,7 +127,7 @@ export const PRODUCT_SOLD_AS_AUCTION = 30020 export const WIKI = 30818 export const LONG_FORM = 30023 export const LONG_FORM_DRAFT = 30024 -export const APPLICATION = 30078 +export const APP_DATA = 30078 export const LIVE_EVENT = 30311 export const STATUS = 30315 export const CLASSIFIED = 30402 diff --git a/packages/util/Repository.ts b/packages/util/Repository.ts index 78d5cd8..0abc567 100644 --- a/packages/util/Repository.ts +++ b/packages/util/Repository.ts @@ -31,11 +31,11 @@ export class Repository extends Emitter { // Dump/load/clear - dump() { + dump = () => { return Array.from(this.eventsById.values()) } - async load(events: TrustedEvent[], chunkSize = 1000) { + load = async (events: TrustedEvent[], chunkSize = 1000) => { this.clear() for (const eventsChunk of chunk(chunkSize, events)) { @@ -49,7 +49,7 @@ export class Repository extends Emitter { } } - clear() { + clear = () => { this.eventsById.clear() this.eventsByAddress.clear() this.eventsByTag.clear() @@ -74,13 +74,13 @@ export class Repository extends Emitter { // API - getEvent(idOrAddress: string) { + getEvent = (idOrAddress: string) => { return idOrAddress.includes(':') ? this.eventsByAddress.get(idOrAddress) : this.eventsById.get(idOrAddress) } - hasEvent(event: TrustedEvent) { + hasEvent = (event: TrustedEvent) => { const duplicate = ( this.eventsById.get(event.id) || this.eventsByAddress.get(getAddress(event)) @@ -89,7 +89,7 @@ export class Repository extends Emitter { return duplicate && duplicate.created_at >= event.created_at } - query(filters: Filter[], {includeDeleted = false} = {}) { + query = (filters: Filter[], {includeDeleted = false} = {}) => { const result: TrustedEvent[][] = [] for (let filter of filters) { let events: TrustedEvent[] = Array.from(this.eventsById.values()) @@ -144,7 +144,7 @@ export class Repository extends Emitter { return uniq(flatten(result)) } - publish(event: TrustedEvent) { + publish = (event: TrustedEvent) => { if (!isTrustedEvent(event)) { throw new Error("Invalid event published to Repository", event) } @@ -204,7 +204,7 @@ export class Repository extends Emitter { } } - isDeleted(event: TrustedEvent) { + isDeleted = (event: TrustedEvent) => { const deletedAt = ( this.deletes.get(event.id) || this.deletes.get(getAddress(event)) || diff --git a/packages/util/Router.ts b/packages/util/Router.ts index 1a5bef4..8128758 100644 --- a/packages/util/Router.ts +++ b/packages/util/Router.ts @@ -45,12 +45,6 @@ export type RouterOptions = { */ getFallbackRelays: () => string[] - /** - * Retrieves relays likely to return results for kind 0, 3, and 10002. - * @returns An array of relay URLs as strings. - */ - getIndexerRelays?: () => string[] - /** * Retrieves relays likely to support NIP-50 search. * @returns An array of relay URLs as strings. @@ -263,9 +257,6 @@ export class Router { Search = (term: string, relays: string[] = []) => this.product([term], uniq(relays.concat(this.options.getSearchRelays?.() || []))) - Indexers = (relays: string[] = []) => - this.fromRelays(uniq(relays.concat(this.options.getIndexerRelays?.() || []))) - // Fallback policies addNoFallbacks = (count: number, redundancy: number) => 0