@berish/rfp
Version:
Binary secure transport organization protocol for peer communication using function fingerprints
44 lines • 1.7 kB
TypeScript
/// <reference types="node" />
import type { TransportPlugin } from './transportPlugin';
import type { Peer } from '../peer';
import type { PeerChunk } from '../chunk';
export interface PeerTransportAdapter<T = any> {
transport?: T;
send?(data: any): void;
subscribe?(cb: (data: any) => any): () => void;
binaryFormat: 'string' | 'binary';
binaryEncoder?: PeerTransportBinaryEncoder;
stringEncoder?: PeerTransportStringEncoder;
}
export interface PeerTransportBinaryEncoder {
encode: (data: any) => Buffer | Promise<Buffer>;
decode: (data: Buffer) => any;
}
export interface PeerTransportStringEncoder {
encode: (data: Buffer) => string | Promise<string>;
decode: (data: string) => Buffer | Promise<Buffer>;
}
export interface PeerTransportEventEmitterMap {
subscribe: any;
}
export declare class PeerTransport<Adapter extends PeerTransportAdapter<any> = PeerTransportAdapter<any>> {
private _transportAdapter;
private _plugins;
private _cacheEmitter;
private _isConnected;
constructor(transportAdapter: Adapter, plugins?: TransportPlugin[]);
get transportAdapter(): Adapter;
get binaryEncoder(): PeerTransportBinaryEncoder;
get stringEncoder(): PeerTransportStringEncoder;
get plugins(): TransportPlugin[];
send(peer: Peer, data: PeerChunk<any>): Promise<boolean>;
subscribe(peer: Peer, callback: (data: PeerChunk<any>) => void): string;
unsubscribe(eventHash: string): void;
private _beforeSend;
private _beforeResponse;
private _beforeDataSend;
private _beforeTransportSend;
private _beforeDataResponse;
private _beforeTransportResponse;
}
//# sourceMappingURL=transport.d.ts.map