727
*/
728
export function prefixedReadable<T>(prefix: T, readable: Readable<T>, reducer: IReducer<T>): Readable<T> {
730
>
731
>
return {
732
>
read: () => {
733
>
const chunk = readable.read();
734
>
735
>
// Handle prefix only once
736
>
if (!prefixHandled) {
737
>
prefixHandled = true;
738
>
739
>
// If we have also a read-result, make
740
>
// sure to reduce it to a single result
741
>
if (chunk !== null) {
742
>
return reducer([prefix, chunk]);
743
>
}
744
>
745
>
// Otherwise, just return prefix directly
746
>
return prefix;
747
>
}
748
>
749
>
return chunk;
750
>
}
751
>
};
752
>
}
753
754
/**