npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

stream-template

v0.0.10

Published

An ES6 Tagged String Literal tag that can interpolate Node.JS streams, strings, arrays and Promises and produces a stream.,

Downloads

87,752

Readme

stream-template

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.

Written by Thomas Parslow (almostobsolete.net and tomparslow.co.uk) for IORad (iorad.com) and released with their kind permission.

NPM

Build Status

Warning: will only run on newer versions of Node.JS (tested on 4.0.0 and above)

Install

npm install --save stream-template

Examples

const ST = require("stream-template");

const data1 = fs.createReadStream("data1.txt");
const data2 = fs.createReadStream("data2.txt");
const output = ST`<html>
  1: <pre>${data1}</pre>
  2: <pre>${data2}</pre>
</html>`;
output.pipe(process.stdout);

Can also accept arrays (items are concatenated, array items can be any of the supported types):

const ST = require("stream-template");

const data = [
  fs.createReadStream("part1.txt"),
  fs.createReadStream("part2.txt")
];
const output = ST`Data follows: ${data}`;
output.pipe(process.stdout);

And also Promises:

const ST = require("./stream-template");
const fetch = require("node-fetch");

const email = fetch("https://api.github.com/users/almost")
  .then(r => r.json())
  .then(profile => {
    return profile.email;
  });

const output = ST`<a href="mailto:${email}">Email</a>`;
output.pipe(process.stdout);

And of course regular strings work:

const output = ST`Hello by name is ${name}`;
output.pipe(process.stdout);

I've shown each used seperated but you can do it all mixed together as well.

Encoding

By default strings are encoded as utf-8, you can change the encoding like this:

const ST = require("stream-template").encoding("utf16le");

Note that buffers and other streams are passed through as-is, the encoding only effects the template strings and interpolated strings.

Contributing

Fixed or improved stuff? Great! Send me a pull request through GitHub or get in touch on Twitter @almostobsolete or email at [email protected]