Files
welshman/docs/net/message.md
T
2026-06-10 14:12:47 -07:00

54 lines
1.9 KiB
Markdown

# Message
Type definitions and utilities for Nostr protocol messages.
## Relay Message Types
**Enums:**
- `RelayMessageType.Notice` - Human-readable notice from relay
- `RelayMessageType.Auth` - Authentication challenge
- `RelayMessageType.Closed` - Subscription closed
- `RelayMessageType.Eose` - End of stored events
- `RelayMessageType.Event` - Event data
- `RelayMessageType.NegErr` - Negentropy error
- `RelayMessageType.NegMsg` - Negentropy message
- `RelayMessageType.Ok` - Command result
**Type Definitions:**
- `RelayMessage` - Base relay message type
- `RelayNotice`, `RelayAuth`, `RelayClosed`, `RelayEose`, `RelayEvent`, `RelayNegErr`, `RelayNegMsg`, `RelayOk` - Specific message types
- `RelayNoticePayload`, `RelayAuthPayload`, `RelayClosedPayload`, etc. - Payload types for each message
**Type Guards:**
- `isRelayNotice()`, `isRelayAuth()`, `isRelayClosed()`, `isRelayEose()`, `isRelayEvent()`, `isRelayNegErr()`, `isRelayNegMsg()`, `isRelayOk()`
## Client Message Types
**Enums:**
- `ClientMessageType.Auth` - Authentication response
- `ClientMessageType.Close` - Close subscription
- `ClientMessageType.Event` - Publish event
- `ClientMessageType.NegClose` - Close negentropy
- `ClientMessageType.NegOpen` - Open negentropy
- `ClientMessageType.Req` - Request subscription
**Type Definitions:**
- `ClientMessage` - Base client message type
- `ClientAuth`, `ClientClose`, `ClientEvent`, `ClientNegClose`, `ClientNegOpen`, `ClientReq` - Specific message types
- `ClientAuthPayload`, `ClientClosePayload`, etc. - Payload types for each message
**Type Guards:**
- `isClientAuth()`, `isClientClose()`, `isClientEvent()`, `isClientNegClose()`, `isClientNegOpen()`, `isClientReq()`
## Example
```typescript
// Handle incoming relay message
const handleMessage = (message: RelayMessage) => {
if (isRelayEvent(message)) {
const [type, subId, event] = message
console.log('Event:', event.id)
}
}
```