npm.io
0.6.0 • Published 4d ago

@super-line/client

Licence
MIT
Version
0.6.0
Deps
1
Size
47 kB
Vulns
0
Weekly
188

@super-line/client

The client for super-line — end-to-end typesafe WebSockets for TypeScript. A typed proxy over the global WebSocket: call requests, listen to events, subscribe to topics — with auto-reconnect and at-most-once delivery.

pnpm add @super-line/core @super-line/client @super-line/transport-websocket zod
import { createSuperLineClient } from '@super-line/client'
import { webSocketClientTransport } from '@super-line/transport-websocket'
import { api } from './contract'

const client = createSuperLineClient(api, {
  transport: webSocketClientTransport({ url: 'ws://localhost:3000' }),
  role: 'user',
})

client.on('message', (m) => console.log(m.text))   // typed
const sub = client.subscribe('prices', (p) => render(p))
await sub.ready

const out = await client.send({ text: 'hi' })       // throws typed SuperLineError on failure
client.close()

The client is narrowed to its role's surface (shared ∪ role). The wire is carried by a pluggable transport — @super-line/transport-websocket provides the WS transport shown above; other transports (HTTP/SSE, libp2p) are available — see the Transports guide. Works in browsers and Node 22+ (pass webSocketClientTransport({ url, WebSocket }) on older runtimes).

MIT Mert

Keywords