docker-decoder-stream
Version:
TS/JS decoder for Docker streams (logs and container attach)
42 lines (36 loc) • 1.51 kB
TypeScript
import { EventEmitter } from 'eventemitter3';
type IOStreamType = "stdin" | "stdout" | "stderr";
/**
* Decoder for Docker logs stream.
*
* @see https://docs.docker.com/engine/api/v1.37/#tag/Container/operation/ContainerAttach
* header := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}
*/
declare class DockerDecoder extends EventEmitter<{
data: (type: IOStreamType, payload: Uint8Array) => any;
end: (type?: IOStreamType, payload?: Uint8Array) => any;
error: (err: unknown) => any;
}> {
#private;
static readonly defaultBufferSize = 8192;
get bufferLength(): number;
constructor(bufferLength?: number);
decode(chunk: Uint8Array): Record<IOStreamType, Uint8Array>;
push(chunk: Uint8Array): void;
close(): void;
}
declare class DockerDecoderStream {
#private;
defaultStreamType: "stdin" | "stdout" | "stderr";
constructor(defaultStreamType?: "stdin" | "stdout" | "stderr");
get readable(): ReadableStream<Uint8Array>;
get writable(): WritableStream<Uint8Array>;
get stdin(): ReadableStream<Uint8Array>;
get stdout(): ReadableStream<Uint8Array>;
get stderr(): ReadableStream<Uint8Array>;
}
declare function mixDownReaders<TKey extends string, T>(readers: Record<TKey, ReadableStreamDefaultReader<T>>): AsyncGenerator<readonly [TKey, T & ({} | null)], void, unknown>;
declare class AssertionError extends Error {
name: string;
}
export { AssertionError, DockerDecoder, DockerDecoderStream, IOStreamType, mixDownReaders };