always-stream

1.0.0 • Public • Published

always-stream npmjs.com The MIT License npm downloads

Create stream from any value - function, array, string, buffer, promise, number, object and etc. Always returns a function that returns Transform Stream, using through2.

code climate standard code style travis build status coverage status dependency status

Note: This is just a thin wrapper around callback2stream and value2stream.

Install

npm i always-stream --save

Usage

For more use-cases see the tests

const alwaysStream = require('always-stream')

alwaysStream

Create a stream from any value.

Params

  • val {Mixed}: Any type of value.
  • [opts] {Object|Function=}: Directly passed to value2stream, callback2stream and through2.
  • [Promize] {Function}: Promise constructor to be used when no support for native Promise. Can be 2nd argument.
  • returns {Function}: That when executed, returns TransformStream, using through2

Example

var fs = require('fs')
var toStream = require('always-stream')
 
var numberStream = toStream(123)
numberStream().on('data', function (val) {
  console.log(val) // => 123
})
var stringStream = toStream('str foo')
stringStream().on('data', function (val) {
  console.log(val) // => 'str foo'
})
 
var readFile = toStream(fs.readFile)
readFile('package.json', 'utf8')
  .on('data', function (val) {
    var json = JSON.parse(val)
    console.log(json.name) // => 'always-stream'
  })
  .once('error', console.error)
  .once('end', console.error)
 
// or sync functions
var statFile = toStream(fs.statSync)
statFile('package.json')
  .on('data', function (stats) {
    console.log(stats) // => stat object
  })
  .once('error', console.error)
  .once('end', console.error)
 
// also works for native functions
// like JSON.parse and JSON.stringify
// by respect optional arguments
var stringifyStream = toStream(JSON.stringify)
stringifyStream({ foo: 'bar' }, null, 2)
  .on('data', function (val) {
    console.log(val) // => '{\n  "foo": "bar"\n}'
  })
  .once('error', console.error)

Related

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
But before doing anything, please read the CONTRIBUTING.md guidelines.

Charlike Make Reagent new message to charlike freenode #charlike

tunnckoCore.tk keybase tunnckoCore tunnckoCore npm tunnckoCore twitter tunnckoCore github

Readme

Keywords

Package Sidebar

Install

npm i always-stream

Weekly Downloads

3

Version

1.0.0

License

MIT

Last publish

Collaborators

  • vanchoy
  • tunnckocore