Add vitepress docs

This commit is contained in:
Ticruz
2025-02-04 14:43:40 +01:00
committed by Jon Staab
parent 43255bcb74
commit 94375a56ec
84 changed files with 10821 additions and 139 deletions
+70
View File
@@ -0,0 +1,70 @@
# Sync
The Sync utilities in `@welshman/net` provide methods for synchronizing events between relays and repositories, primarily using NIP-77 (Negentropy) when available, with fallback to traditional sync methods.
## Overview
```typescript
import {sync, pull, push} from '@welshman/net'
// Three main operations:
// 1. pull: Get events from relays
// 2. push: Send events to relays
// 3. sync: Bidirectional sync
```
These utilities are primarily used by:
- `Repository` for syncing with relays
- `FeedController` for initial feed loading
## Basic Usage
```typescript
import {sync, pull, getFilterSelections} from '@welshman/net'
// Sync user profile data
const syncProfiles = async (pubkeys: string[]) => {
await sync({
// What to sync
filters: [{
kinds: [0],
authors: pubkeys
}],
// Which relays
relays: ctx.app.router
.ForPubkeys(pubkeys)
.getUrls(),
// Local events to consider
events: repository.query([{
kinds: [0],
authors: pubkeys
}])
})
}
// Initial feed load with negentropy
const loadFeed = async () => {
await pull({
filters: [{
kinds: [1],
limit: 100
}],
relays: ctx.app.router
.ForUser()
.getUrls(),
events: [], // No local events yet
onEvent: (event) => {
// Handle new events
}
})
}
```
Sync operations:
- Use NIP-77 when supported by relay
- Fall back to traditional sync
- Handle bidirectional sync
- Support filtered sync
- Track sync progress