@akala/core
Version:
10 lines (9 loc) • 730 B
TypeScript
import { IsomorphicBuffer } from "../helpers.js";
import { SocketAdapter } from "./shared.js";
import { SocketProtocolAdapter } from "./shared.socket-protocol-adapter.js";
export interface SocketProtocolTransformer<TMessage, TSource = string | IsomorphicBuffer> {
receive: (data: TSource, self: SocketProtocolAdapter<unknown>) => TMessage[];
send: (data: TMessage, self: SocketProtocolAdapter<unknown>) => TSource;
close?: (socket: SocketAdapter) => Promise<void>;
}
export declare function pipeSocketProtocolTransformer<TSource, TIntermediate, TTarget>(source: SocketProtocolTransformer<TIntermediate, TSource>, target: SocketProtocolTransformer<TTarget, TIntermediate>): SocketProtocolTransformer<TTarget, TSource>;