slice-through

array.slice methods for streams (using through)

Usage no npm install needed!

<script type="module">
  import sliceThrough from 'https://cdn.skypack.dev/slice-through';
</script>

README

slice-through

Like Array.prototype.slice but for streams (using the through module). Given a start and optionally an end value it will return a through stream that emits the data event when elements match the slice range.

Note that when the start or end values are negative, the module will buffer the results until they match the range (as they require knowing the total length), and will emit individual data events but only when the stream has finished (right before the end event). Ideally these ranges would not be used.

Example

// demo.js
var slice = require('./');
var JSONStream = require('JSONStream');

process.stdin
  .pipe(JSONStream.parse('*'))
  .pipe(slice(2, 4)) // show 2nd & 3rd item
  .on('data', function (data) {
    console.log(data); // logs twice
  });

Usage:

curl --silent https://api.github.com/repos/octocat/Hello-World/issues | node demo.js

Installation

npm install --save slice-through