UNPKG

@labelbox/message-bus

Version:

Distributed messaging in Typescript

36 lines (35 loc) 1.21 kB
import { GenericChannel } from './GenericChannel'; import { TransportMessage } from '../Message'; export declare type ChunkedMessageStart = { type: 'chunk_start'; chunkId: string; size: number; }; export declare type ChunkedMessage = { type: 'chunk_data'; chunkId: string; data: any; }; export declare type ChunkedMessageEnd = { type: 'chunk_end'; chunkId: string; }; export declare type ChunkedTransportMessage = ChunkedMessageEnd | ChunkedMessageStart | ChunkedMessage; export interface ChunkedChannelConstructorOptions { chunkSize: number; sender: (m: TransportMessage) => void; timeout?: number; maxStringAlloc?: number; } export declare class ChunkedChannel extends GenericChannel { constructor(opts: ChunkedChannelConstructorOptions); private _chunkSize; private _maxStringAlloc; protected _sender: (m: TransportMessage | ChunkedTransportMessage) => void; private _buffer; send(message: TransportMessage): void; protected _messageReceived(message: TransportMessage | ChunkedTransportMessage): void; private _receiveNewChunk; private _receiveChunkData; private _mergeChunks; }