Various optimizations
This commit is contained in:
@@ -1,6 +1,13 @@
|
||||
import {writable, derived, Subscriber} from "svelte/store"
|
||||
import {writable, Subscriber} from "svelte/store"
|
||||
import {tryCatch, fetchJson, batcher, postJson, last} from "@welshman/lib"
|
||||
import {getter, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem} from "@welshman/store"
|
||||
import {
|
||||
getter,
|
||||
deriveItems,
|
||||
deriveDeduplicated,
|
||||
makeForceLoadItem,
|
||||
makeLoadItem,
|
||||
makeDeriveItem,
|
||||
} from "@welshman/store"
|
||||
import {deriveProfile, loadProfile} from "./profiles.js"
|
||||
import {appContext} from "./context.js"
|
||||
|
||||
@@ -123,15 +130,18 @@ export const loadHandleForPubkey = async (pubkey: string, relays: string[] = [])
|
||||
export const deriveHandleForPubkey = (pubkey: string, relays: string[] = []) => {
|
||||
loadHandleForPubkey(pubkey, relays)
|
||||
|
||||
return derived([handlesByNip05, deriveProfile(pubkey, relays)], ([$handlesByNip05, $profile]) => {
|
||||
if (!$profile?.nip05) return undefined
|
||||
return deriveDeduplicated(
|
||||
[handlesByNip05, deriveProfile(pubkey, relays)],
|
||||
([$handlesByNip05, $profile]) => {
|
||||
if (!$profile?.nip05) return undefined
|
||||
|
||||
const handle = $handlesByNip05.get($profile.nip05)
|
||||
const handle = $handlesByNip05.get($profile.nip05)
|
||||
|
||||
if (handle?.pubkey !== pubkey) return undefined
|
||||
if (handle?.pubkey !== pubkey) return undefined
|
||||
|
||||
return handle
|
||||
})
|
||||
return handle
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
export const displayNip05 = (nip05: string) =>
|
||||
|
||||
@@ -109,7 +109,7 @@ export const getRelayQuality = (url: string) => {
|
||||
|
||||
type RelayStatsUpdate = [string, (stats: RelayStats) => void]
|
||||
|
||||
const updateRelayStats = batch(500, (updates: RelayStatsUpdate[]) => {
|
||||
const updateRelayStats = batch(1000, (updates: RelayStatsUpdate[]) => {
|
||||
relayStatsByUrl.update($relayStatsByUrl => {
|
||||
for (const [url, items] of groupBy(([url]) => url, updates)) {
|
||||
if (!url || !isRelayUrl(url)) {
|
||||
|
||||
@@ -372,7 +372,8 @@ export const waitForThunkCompletion = (thunk: Thunk) =>
|
||||
export const thunks = writable<Thunk[]>([])
|
||||
|
||||
export const thunkQueue = new TaskQueue<Thunk>({
|
||||
batchSize: 50,
|
||||
batchSize: 10,
|
||||
batchDelay: 100,
|
||||
processItem: (thunk: Thunk) => {
|
||||
thunk.publish()
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import {derived, Readable} from "svelte/store"
|
||||
import {ItemsByKey} from "@welshman/store"
|
||||
import {ItemsByKey, deriveDeduplicated} from "@welshman/store"
|
||||
import {pubkey} from "./session.js"
|
||||
import {profilesByPubkey, forceLoadProfile, loadProfile} from "./profiles.js"
|
||||
import {followListsByPubkey, forceLoadFollowList, loadFollowList} from "./follows.js"
|
||||
@@ -27,7 +27,7 @@ export const makeUserData = <T>(
|
||||
itemsByKey: Readable<ItemsByKey<T>>,
|
||||
onDerive?: (key: string, ...args: any[]) => void,
|
||||
) =>
|
||||
derived([itemsByKey, pubkey], ([$itemsByKey, $pubkey]) => {
|
||||
deriveDeduplicated([itemsByKey, pubkey], ([$itemsByKey, $pubkey]) => {
|
||||
if (!$pubkey) return undefined
|
||||
|
||||
onDerive?.($pubkey)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import {writable, derived, Subscriber} from "svelte/store"
|
||||
import {writable, Subscriber} from "svelte/store"
|
||||
import {Zapper, TrustedEvent, Zap, getTagValues, getLnUrl, zapFromEvent} from "@welshman/util"
|
||||
import {
|
||||
removeUndefined,
|
||||
@@ -9,7 +9,14 @@ import {
|
||||
batcher,
|
||||
postJson,
|
||||
} from "@welshman/lib"
|
||||
import {getter, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem} from "@welshman/store"
|
||||
import {
|
||||
getter,
|
||||
deriveItems,
|
||||
deriveDeduplicated,
|
||||
makeForceLoadItem,
|
||||
makeLoadItem,
|
||||
makeDeriveItem,
|
||||
} from "@welshman/store"
|
||||
import {deriveProfile, loadProfile} from "./profiles.js"
|
||||
import {appContext} from "./context.js"
|
||||
|
||||
@@ -103,9 +110,12 @@ export const loadZapperForPubkey = async (pubkey: string, relays: string[] = [])
|
||||
export const deriveZapperForPubkey = (pubkey: string, relays: string[] = []) => {
|
||||
loadZapperForPubkey(pubkey, relays)
|
||||
|
||||
return derived([zappersByLnurl, deriveProfile(pubkey, relays)], ([$zappersByLnurl, $profile]) => {
|
||||
return $profile?.lnurl ? $zappersByLnurl.get($profile.lnurl) : undefined
|
||||
})
|
||||
return deriveDeduplicated(
|
||||
[zappersByLnurl, deriveProfile(pubkey, relays)],
|
||||
([$zappersByLnurl, $profile]) => {
|
||||
return $profile?.lnurl ? $zappersByLnurl.get($profile.lnurl) : undefined
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
export const getLnUrlsForEvent = async (event: TrustedEvent) => {
|
||||
|
||||
Reference in New Issue
Block a user