Skip to content

Latest commit

 

History

History
139 lines (104 loc) · 6.56 KB

README.md

File metadata and controls

139 lines (104 loc) · 6.56 KB

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')

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.

tunnckoCore.tk keybase tunnckoCore tunnckoCore npm tunnckoCore twitter tunnckoCore github