An ES6/ES2015 Tagged String Literal tag that can interpolate Node.JS streams, strings and Promises that return either (or arrays of any of those) and produces a Node.JS stream. This allows you to join several Streams together with bits in between without having to buffer anything.
Warning: will only run on newer versions of Node.JS (tested on 4.0.0 and above)
npm install --save stream-template
const ST = ;const data1 = fs;const data2 = fs;const output = ST`<html>1: <pre></pre>2: <pre></pre></html>`;output;
Can also accept arrays (items are concatenated, array items can be any of the supported types):
const ST = ;const data =fsfs;const output = ST`Data follows: `;output;
And also Promises:
const ST = ;const fetch = ;const email =;const output = ST`<a href="mailto:">Email</a>`;output;
And of course regular strings work:
const output = ST`Hello by name is `;output;
I've shown each used seperated but you can do it all mixed together as well.
By default strings are encoded as utf-8, you can change the encoding like this:
const ST = encoding"utf16le";
Note that buffers and other streams are passed through as-is, the encoding only effects the template strings and interpolated strings.