mirror of
https://github.com/xtr-dev/rondevu-client.git
synced 2025-12-15 21:33:23 +00:00
v0.13.0: Major refactoring with unified Rondevu class and service discovery
- Renamed RondevuService to Rondevu as single main entrypoint - Integrated signaling methods directly into Rondevu class - Updated service FQN format: service:version@username (colon instead of @) - Added service discovery (direct, random, paginated) - Removed high-level abstractions (ServiceHost, ServiceClient, RTCDurableConnection, EventBus, WebRTCContext, Bin) - Updated RondevuAPI with new endpoint methods (offer-specific routes) - Simplified types (moved Binnable to types.ts, removed connection types) - Updated RondevuSignaler to use Rondevu class - Breaking changes: Complete API overhaul for simplicity 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
40
src/types.ts
40
src/types.ts
@@ -1,39 +1,15 @@
|
||||
/**
|
||||
* Core connection types
|
||||
* Core signaling types
|
||||
*/
|
||||
import { EventBus } from './event-bus.js'
|
||||
import { Binnable } from './bin.js'
|
||||
|
||||
export type Message = string | ArrayBuffer
|
||||
|
||||
export interface QueueMessageOptions {
|
||||
expiresAt?: number
|
||||
}
|
||||
|
||||
export interface ConnectionEvents {
|
||||
'state-change': ConnectionInterface['state']
|
||||
message: Message
|
||||
}
|
||||
|
||||
export const ConnectionStates = [
|
||||
'connected',
|
||||
'disconnected',
|
||||
'connecting'
|
||||
] as const
|
||||
|
||||
export const isConnectionState = (state: string): state is (typeof ConnectionStates)[number] =>
|
||||
ConnectionStates.includes(state as any)
|
||||
|
||||
export interface ConnectionInterface {
|
||||
state: (typeof ConnectionStates)[number]
|
||||
lastActive: number
|
||||
expiresAt?: number
|
||||
events: EventBus<ConnectionEvents>
|
||||
|
||||
queueMessage(message: Message, options?: QueueMessageOptions): Promise<void>
|
||||
sendMessage(message: Message): Promise<boolean>
|
||||
}
|
||||
/**
|
||||
* Cleanup function returned by listener methods
|
||||
*/
|
||||
export type Binnable = () => void
|
||||
|
||||
/**
|
||||
* Signaler interface for WebRTC offer/answer/ICE exchange
|
||||
*/
|
||||
export interface Signaler {
|
||||
addIceCandidate(candidate: RTCIceCandidate): Promise<void>
|
||||
addListener(callback: (candidate: RTCIceCandidate) => void): Binnable
|
||||
|
||||
Reference in New Issue
Block a user