Event Kinds
This module provides a comprehensive collection of Nostr event kind definitions and utilities. It includes standard NIP event kinds as well as commonly used application-specific kinds.
Kind Type Checkers
typescript
// Check if kind is ephemeral (should not be stored)
export const isEphemeralKind = (kind: number): boolean
// Check if kind is replaceable (only latest event matters)
export const isReplaceableKind = (kind: number): boolean
// Check if kind is plain replaceable (no parameters)
export const isPlainReplaceableKind = (kind: number): boolean
// Check if kind is parameterized replaceable
export const isParameterizedReplaceableKind = (kind: number): boolean
Usage Examples
Checking Event Types
typescript
import { isReplaceableKind, PROFILE, NOTE } from '@welshman/util'
// Profile events are replaceable
isReplaceableKind(PROFILE) // => true
// Notes are not replaceable
isReplaceableKind(NOTE) // => false
Working with DVMs
typescript
import {
DVM_REQUEST_TEXT_SUMMARY,
DVM_RESPONSE_TEXT_SUMMARY,
isDVMKind
} from '@welshman/util'
// Create DVM request
const request = {
kind: DVM_REQUEST_TEXT_SUMMARY,
content: "Text to summarize"
}
// Check for DVM events
isDVMKind(event.kind) // => true for kinds 5000-7000
Handling Replaceable Events
typescript
import {
isReplaceableKind,
PROFILE,
LONG_FORM
} from '@welshman/util'
function handleEvent(event) {
if (isReplaceableKind(event.kind)) {
// Only keep latest version
replaceExistingEvent(event)
} else {
// Keep all versions
storeNewEvent(event)
}
}