Bidirectional event delivery client with WebSocket and Webhook transports.
npm install @sygnl/talonimport { 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);
});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' });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(); // booleanWebSocketTransport - 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
});disconnected- Not connectedconnecting- Connection in progressconnected- Ready to send/receivereconnecting- Attempting to reconnect
Apache-2.0