Migrate collections to new stores, change some conventions
This commit is contained in:
@@ -9,11 +9,11 @@ removeRelay(url: string, mode: RelayMode): Promise<Thunk>
|
||||
addRelay(url: string, mode: RelayMode): Promise<Thunk>
|
||||
```
|
||||
|
||||
## Inbox Relay Management (NIP 17)
|
||||
## Messaging Relay Management (NIP 17)
|
||||
|
||||
```typescript
|
||||
removeInboxRelay(url: string): Promise<Thunk>
|
||||
addInboxRelay(url: string): Promise<Thunk>
|
||||
removeMessagingRelay(url: string): Promise<Thunk>
|
||||
addMessagingRelay(url: string): Promise<Thunk>
|
||||
```
|
||||
|
||||
## Profile Management (NIP 01)
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ defaultSocketPolicies.push(
|
||||
|
||||
// This will fetch the user's profile automatically, and return a store that updates
|
||||
// automatically. Several different stores exist that are ready to go, including handles,
|
||||
// zappers, relaySelections, relays, follows, mutes.
|
||||
// zappers, relayLists, relays, follows, mutes.
|
||||
const profile = deriveProfile(pubkey.get())
|
||||
|
||||
// Publish is done using thunks, which optimistically publish to the local database, deferring
|
||||
|
||||
@@ -59,8 +59,8 @@ pins → pinsByPubkey → derivePins → loadPins
|
||||
|
||||
// Relays
|
||||
relays → relaysByUrl → deriveRelay → loadRelay
|
||||
relaySelections → relaySelectionsByPubkey → deriveRelaySelections → loadRelaySelections
|
||||
inboxRelaySelections → inboxRelaySelectionsByPubkey → deriveInboxRelaySelections → loadInboxRelaySelections
|
||||
relayLists → relayListsByPubkey → deriveRelayLists → loadRelayLists
|
||||
messagingRelayLists → messagingRelayListsByPubkey → deriveMessagingRelayLists → loadMessagingRelayLists
|
||||
|
||||
// Identity
|
||||
handles → handlesByNip05 → deriveHandle → loadHandle
|
||||
|
||||
@@ -57,8 +57,8 @@ Several thunk factories are provided for common or more complicated scenarios li
|
||||
|
||||
- `removeRelay(url: string, mode: RelayMode)`
|
||||
- `addRelay(url: string, mode: RelayMode)`
|
||||
- `removeInboxRelay(url: string)`
|
||||
- `addInboxRelay(url: string)`
|
||||
- `removeMessagingRelay(url: string)`
|
||||
- `addMessagingRelay(url: string)`
|
||||
- `setProfile(profile: Profile)`
|
||||
- `unfollow(value: string)`
|
||||
- `follow(tag: string[])`
|
||||
|
||||
+8
-8
@@ -39,10 +39,10 @@ export const userMutes: Store<List | undefined>
|
||||
export const userPins: Store<List | undefined>
|
||||
|
||||
// User relay selections
|
||||
export const userRelaySelections: Store<List | undefined>
|
||||
export const userRelayLists: Store<List | undefined>
|
||||
|
||||
// User inbox relay selections
|
||||
export const userInboxRelaySelections: Store<List | undefined>
|
||||
// User messaging relay selections
|
||||
export const userMessagingRelayLists: Store<List | undefined>
|
||||
|
||||
// User blossom servers
|
||||
export const userBlossomServers: Store<List | undefined>
|
||||
@@ -66,10 +66,10 @@ function loadUserMutes(relays?: string[], force?: boolean): Promise<void>
|
||||
function loadUserPins(relays?: string[], force?: boolean): Promise<void>
|
||||
|
||||
// Load user relay selections
|
||||
function loadUserRelaySelections(relays?: string[], force?: boolean): Promise<void>
|
||||
function loadUserRelayLists(relays?: string[], force?: boolean): Promise<void>
|
||||
|
||||
// Load user inbox relay selections
|
||||
function loadUserInboxRelaySelections(relays?: string[], force?: boolean): Promise<void>
|
||||
// Load user messaging relay selections
|
||||
function loadUserMessagingRelayLists(relays?: string[], force?: boolean): Promise<void>
|
||||
|
||||
// Load user blossom servers
|
||||
function loadUserBlossomServers(relays?: string[], force?: boolean): Promise<void>
|
||||
@@ -94,13 +94,13 @@ const follows = userFollows.get()
|
||||
|
||||
### Manual Loading
|
||||
```typescript
|
||||
import { loadUserMutes, loadUserRelaySelections } from '@welshman/app'
|
||||
import { loadUserMutes, loadUserRelayLists } from '@welshman/app'
|
||||
|
||||
// Load user mutes from specific relays
|
||||
await loadUserMutes(['wss://relay1.com', 'wss://relay2.com'])
|
||||
|
||||
// Force refresh user relay selections
|
||||
await loadUserRelaySelections([], true)
|
||||
await loadUserRelayLists([], true)
|
||||
|
||||
// Load from default relays
|
||||
await loadUserProfile()
|
||||
|
||||
@@ -31,7 +31,7 @@ const router = Router.get()
|
||||
// Get relays for reading events from specific pubkeys
|
||||
const readRelays = router.FromPubkeys(['pubkey1', 'pubkey2']).getUrls()
|
||||
|
||||
// Get relays for publishing an event (author's outbox + mentions' inboxes)
|
||||
// Get relays for publishing an event (author's outbox + mentions' messaginges)
|
||||
const publishRelays = router.PublishEvent(event).getUrls()
|
||||
|
||||
// Try hard to find a quoted note with maximal fallbacks
|
||||
@@ -65,7 +65,7 @@ The main class for relay selection. Configure it once with your relay discovery
|
||||
|
||||
**Configuration Options:**
|
||||
- `getUserPubkey()` - Returns the current user's pubkey
|
||||
- `getPubkeyRelays(pubkey, mode)` - Returns relays for a pubkey ("read", "write", or "inbox")
|
||||
- `getPubkeyRelays(pubkey, mode)` - Returns relays for a pubkey ("read", "write", or "messaging")
|
||||
- `getDefaultRelays()` - Returns fallback relays
|
||||
- `getIndexerRelays()` - Returns relays that index profiles and relay lists
|
||||
- `getSearchRelays()` - Returns relays that support NIP-50 search
|
||||
@@ -74,8 +74,8 @@ The main class for relay selection. Configure it once with your relay discovery
|
||||
|
||||
**Scenario Methods:**
|
||||
- `FromRelays(relays)` - Use specific relays
|
||||
- `ForUser()` / `FromUser()` / `UserInbox()` - User's read/write/inbox relays
|
||||
- `ForPubkey(pubkey)` / `FromPubkey(pubkey)` / `PubkeyInbox(pubkey)` - Pubkey's relays
|
||||
- `ForUser()` / `FromUser()` / `UserMessaging()` - User's read/write/messaging relays
|
||||
- `ForPubkey(pubkey)` / `FromPubkey(pubkey)` / `PubkeyMessaging(pubkey)` - Pubkey's relays
|
||||
- `ForPubkeys(pubkeys)` / `FromPubkeys(pubkeys)` - Multiple pubkeys' relays
|
||||
- `Event(event)` - Relays for an event's author
|
||||
- `PublishEvent(event)` - Relays for publishing (author + mentions)
|
||||
@@ -105,7 +105,7 @@ Functions that determine how many fallback relays to add:
|
||||
|
||||
`getFilterSelections(filters)` automatically chooses appropriate relays based on filter content:
|
||||
- Search filters → search relays
|
||||
- Wrap events → user's inbox
|
||||
- Wrap events → user's messaging
|
||||
- Profile/relay kinds → indexer relays
|
||||
- Author filters → authors' relays
|
||||
- Everything else → user's relays (low weight)
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ The `Relay` module provides utilities for working with Nostr relays, including U
|
||||
export enum RelayMode {
|
||||
Read = "read",
|
||||
Write = "write",
|
||||
Inbox = "inbox"
|
||||
Messaging = "messaging"
|
||||
}
|
||||
|
||||
// Relay information from NIP-11
|
||||
|
||||
Reference in New Issue
Block a user