@anycable/core
Version:
AnyCable JavaScript client library core functionality
92 lines (71 loc) • 2.51 kB
TypeScript
import { Transport } from '../transport/index.js'
import { Logger, LogLevel } from '../logger/index.js'
import { Encoder } from '../encoder/index.js'
import { Monitor, ReconnectStrategy } from '../monitor/index.js'
import { Cable } from '../cable/index.js'
import { Protocol } from '../protocol/index.js'
import { Options } from '../action_cable/index.js'
import { ExtendedOptions } from '../action_cable_ext/index.js'
import { WebSocketAuthStrategy } from '../websocket/index.js'
import { ActionCableConsumer } from '../action_cable_compat/index.js'
export type ExtendedProtocolID =
| 'actioncable-v1-ext-json'
| 'actioncable-v1-ext-msgpack'
| 'actioncable-v1-ext-protobuf'
export type ProtocolID =
| 'actioncable-v1-json'
| 'actioncable-v1-msgpack'
| 'actioncable-v1-protobuf'
| ExtendedProtocolID
export type TransportConfigurator = (
transport: Transport,
params: { initial: boolean }
) => Promise<void>
export type TokenRefresher = (transport: Transport) => Promise<void>
type ProtocolOptions<T extends Protocol | ProtocolID> = T extends Protocol
? never
: T extends ExtendedProtocolID
? ExtendedOptions
: Options
export interface CreateOptions<P extends ProtocolID | Protocol> {
protocol: P
subprotocol: string
protocolOptions: ProtocolOptions<P>
transport: Transport
/* eslint-disable @typescript-eslint/no-explicit-any */
websocketImplementation: any
websocketFormat: string
websocketOptions: object
websocketAuthStrategy: WebSocketAuthStrategy
fallbacks: Transport[]
encoder: Encoder
logger: Logger
logLevel: LogLevel
monitor: Monitor | false
pingInterval: number
lazy: boolean
transportConfigurator: TransportConfigurator
tokenRefresher: TokenRefresher
reconnectStrategy: ReconnectStrategy
maxMissingPings: number
maxReconnectAttempts: number
historyTimestamp: number | false
concurrentSubscribes: boolean
performFailures: 'throw' | 'warn' | 'ignore'
auth: { token?: string; param?: string }
}
export const DEFAULT_OPTIONS: Partial<CreateOptions<ProtocolID | Protocol>>
export function createCable(
url: string,
opts?: Partial<CreateOptions<ProtocolID | Protocol>>
): Cable
export function createCable(
opts?: Partial<CreateOptions<ProtocolID | Protocol>>
): Cable
export function createConsumer(
url?: string,
opts?: Partial<CreateOptions<ProtocolID | Protocol>>
): ActionCableConsumer
export function createConsumer(
opts?: Partial<CreateOptions<ProtocolID | Protocol>>
): ActionCableConsumer