Hi Paul, I recently wrote https://github.com/brycebaril/stream-splice to do just that.
-Bryce On Wed, Aug 28, 2013 at 6:18 AM, Paul Connolley <[email protected]>wrote: > Hi folks > > I'm currently in the process of writing a streaming email module (stream > your text, HTML and attachments in and stream a nicely formatted email out > to sendmail etc) and I'm currently deep in the middle of extracting lots of > little streaming modules out before I finish what I started. > > I've tried to keep the individual streams as simple as possible. For > example, there's a quoted-printable stream that takes in text and blurts > out quoted-printable (it's not a very good streaming module as it buffers > all the chunks and then transforms the whole lot out before pushing it out > - once I've finished the email-stream module, I'll go back to it) text. > However, I've also put together a little streaming module that takes in > text, plus a few details, and blurts out a MIME partial that's > quoted-printable or base64 encoded. The intention is that multiple streams > are then going to be used as inbound streams that make up a multipart > stream. > > I'm concerned that I'm embarking on a journey of anti-pattern madness > though. I created the MIME partial stream as a duplex stream to encapsulate > the process of 2 other transform streams in to one but I'm concerned that > I'm missing an obvious pattern to achieve what I want. To explain what I > want, let me give an example: > > Imagine that I have my original stream of content A, and I want to get a > MIME partial to incorporate in to a multi-part email. A first needs to pass > through B in order to be converted in to quoted-printable/base64. Next it > needs to pass through C to have any necessary headers/footers adding to it > to become D. With bash, that would be: > > A | B | C > > Is there an established pattern/module/gist that can expose B | C as Z, a > transform stream that can then be piped? As is usually the case when I > write an email, I've already found an alternative design to achieve what I > need without encapsulating a chain of duplex streams as its own module. I > almost don't want to add any noise to this group, by posting this email, > now that I've reconsidered it. I'm going to post it anyway as I'd still be > interested to know your thoughts on whether it does seem a bit of an > anti-pattern. > > Cheers, > connrs. > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
