import * as tb from "../base"; import type BufferReader from "./BufferReader"; type TypedReader = { read(): Promise<{ message: T } | null>; }; function TypedReader( bufferReader: BufferReader, bicoder: tb.Bicoder, ): TypedReader { return { read: async () => { const buffer = await bufferReader.read(); if (buffer === null) { return null; } return { message: bicoder.decode(buffer) }; }, }; } export default TypedReader;