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.

Reply via email to