Is it possible to create a single TransformStream out of several other TransformStreams using whatwg streams (the web Streams API)?
For example, if I have two TransformStreams which run in sequence, like transformer1 and transformer2:
readable.pipeThrough(transformer1).pipeThrough(transformer2).pipeTo(writable)
Ultimately, I'd like to be able to convert that to
readable.pipeThrough(allTransformers).pipeTo(writable)
Where allTransformers is the TransformStream combining transformer1 and transformer2.
Below is not real functional code, but I'd think there would be a way to do something like this:
const allTransformers = transformer1.pipeThrough(transformer2)
This is clearly a simplified example, but you can imagine there being many transform streams and I'd like to refactor to a single, reusable transform pipeline.
I had the same issue, here are my solutions.
In the example below,
UpperCaseTransformStreampipes the stream throughTextDecoderStream,UpperCaseTextStreamandTextEncoderStream.Here is a more generic implementation using the class
PipelineStreamwhich extendsTransformStreamand accepts an array ofTransformStreaminstances as first parameter.