@sygnl/talon
v1.0.4
Published
Bidirectional event delivery client with WebSocket and Webhook transports
Maintainers
Readme
@sygnl/talon
Bidirectional event delivery client with WebSocket and Webhook transports.
Install
npm install @sygnl/talonQuick Start
WebSocket (Bidirectional)
import { TalonClient, WebSocketTransport } from '@sygnl/talon';
const talon = new TalonClient({
transport: new WebSocketTransport('wss://edge.example.com'),
autoConnect: true
});
// Send events TO edge
await talon.send({ event: 'purchase', order_id: '123', total: 99.99 });
// Receive updates FROM edge
talon.on('attribution_updated', (data) => {
console.log('Attribution:', data);
});
talon.on('context_synced', (data) => {
console.log('Context synced:', data);
});Webhook (Fire-and-forget)
import { TalonClient, WebhookTransport } from '@sygnl/talon';
const talon = new TalonClient({
transport: new WebhookTransport('https://edge.example.com/webhook')
});
await talon.send({ event: 'page_view', url: '/products' });API
TalonClient
const talon = new TalonClient({
transport: WebSocketTransport | WebhookTransport,
autoConnect?: boolean,
debug?: boolean
});
// Methods
await talon.connect();
await talon.disconnect();
await talon.send(event);
talon.on(eventName, handler);
talon.off(eventName, handler);
talon.isConnected(); // booleanTransports
WebSocketTransport - Bidirectional, auto-reconnect
new WebSocketTransport(url, {
reconnect?: boolean,
reconnectInterval?: number,
maxReconnectAttempts?: number
});WebhookTransport - One-way HTTP POST
new WebhookTransport(url, {
method?: 'POST' | 'PUT',
retries?: number
});Connection States
disconnected- Not connectedconnecting- Connection in progressconnected- Ready to send/receivereconnecting- Attempting to reconnect
License
Apache-2.0
