Package detail

buffer-peek-stream

seangarner41kMIT1.1.0

Transform stream that lets you inspect the start of a readable stream before deciding what to do with it

stream, streams, peek, parse

readme

node-buffer-peek-stream

Build Status

Take a peek at the start of a stream and get back a new stream rewound from the start without buffering the entire stream. Useful when you need to inspect the start of the stream before deciding what to do with the stream.

npm install buffer-peek-stream

Useful if you want to inspect the start of a stream before deciding what to do with it.

This works with buffers and does no string decoding. If you know you have a string and already know its encoding then checkout peek-stream.

Usage

As a promise (with await)...

const peek = require('buffer-peek-stream').promise;
const readstream = fs.createReadStream('package.json');

const [data, outputStream] = await peek(readstream, 65536);

// outputStream is ready to be piped somewhere else
outputStream.pipe(somewhere_else);

As a callback...

var peek = require('buffer-peek-stream');
var readstream = fs.createReadStream('package.json');

peek(readstream, 65536, function (err, data, outputStream) {
  if (err) throw err;

  // outputStream is ready to be piped somewhere else
  outputStream.pipe(somewhere_else);
});

As a stream...

var PeekStream = require('buffer-peek-stream').BufferPeekStream;

var peek = new PeekStream(65536);
var readstream = fs.createReadStream('package.json');

// peek will only emit the peek event once
peek.once('peek', function (buf) {

  // readstream is ready to be piped somewhere else
  peek.pipe(somewhere_else);
});

readstream.pipe(peek);

// alternatively pipe `peek` here instead of in `data` callback

Licence

MIT

changelog

buffer-peek-stream changelog

1.1.0 (2020/02/02)

  • add promise interface
  • drop tests for node 4 & 6

1.0.1 (2015/06/09)

  • documentation fixes (no code change)

1.0.0 (2015/05/19)

  • no changes other than bump to a stable version

0.2.0 (2014/11/12)

  • rewrite using a completely different approach because 0.1.x approach was too fragile and often broke with edge cases
  • api backwards incompatible with 0.1 - will bump to 1.0.0 only once api is stable

0.1.2 (2014/11/07)

  • fix data being emitted out of order on a large peeked stream

0.1.1 (2014/11/05)

  • fix typo in require

0.1.0 (2014/11/05)

  • initial version