@anycable/core
Version:
AnyCable JavaScript client library core functionality
33 lines (27 loc) • 870 B
TypeScript
import {
Protocol,
Consumer,
ProcessedMessage,
ReasonError
} from '../protocol/index.js'
import { Message } from '../channel/index.js'
import { Logger } from '../logger/index.js'
export type Options = Partial<{
logger: Logger
subscribeRetryInterval: number
subscribeCooldownInterval: number
}>
export class ActionCableProtocol implements Protocol {
readonly cable: Consumer
readonly logger: Logger
subscribeCooldownInterval: number
subscribeRetryInterval: number
constructor(opts?: Options)
attached(cable: Consumer): void
subscribe(channel: string, params?: object): Promise<string>
unsubscribe(identifier: string): Promise<void>
perform(identifier: string, action: string, payload?: object): Promise<void>
receive(msg: Message): ProcessedMessage | void
recoverableClosure(err: Error): boolean
reset(err: ReasonError): void
}