stream-from-array

Create streams from arrays of arbitrary Javascript values like strings, functions, arrays, etc.

Usage no npm install needed!

<script type="module">
  import streamFromArray from 'https://cdn.skypack.dev/stream-from-array';
</script>

README

stream-from-array Dependencies Status Image Build Status Image Coverage Status

Create streams from arrays of arbitrary Javascript values like strings, functions, arrays, etc.

npm install stream-from-array --save

Usage

Stream of array of String | Buffers

import StreamFromArray from 'stream-from-array';

StreamFromArray(['some', ' ', 'strings'])
  .pipe(process.stdout); // output: some strings

StreamFromArray([new Buffer('some') , ' mixed ', new Buffer('strings')])
  .pipe(process.stdout); // output: some mixed strings

Stream of (arbitrary) Javascript Values

import StreamFromArray from 'stream-from-array';

let i = 0;

StreamFromArray.obj(['some', 42, 'mixed', 'array', () => {}])
  .on('data', data => {
    console.log(i++ + ': ' + typeof data);
    /* outputs:
      0: string
      1: number
      2: string
      3: string
      4: function
    */
  });

Stream of Gulp Files

Gulp files are vinyl files:

npm install vinyl

Test some awsome Gulp plugin:

import StreamFromArray from 'stream-from-array';
import File from 'vinyl';

const hello = new File({
      cwd: '/',
      base: '/hello/',
      path: '/hello/hello.js',
      contents: new Buffer('console.log("Hello");')
    });

const world = new File({
      cwd: '/',
      base: '/hello/',
      path: '/hello/world.js',
      contents: new Buffer('console.log("world!");')
    });

StreamFromArray.obj([hello, world])
  .pipe(someAwsomeGulpPlugin())
  .on('data', file => {
    console.log(file.contents.toString()); // dunno what someAwsomeGulpPlugin does :)
  });

See also stream-recorder for testing gulp plugins with stream-from-array.

API

Class: StreamFromArray

StreamFromArrays are Readable streams.

new StreamFromArray(array, [options])

  • array Array Array of arbitrary Javascript values like numbers, strings, objects, functions, ...
  • options Object passed through new Readable([options])

Note: The new operator can be omitted.

StreamFromArray#obj(array, [options])

A convenience wrapper for new StreamFromArray(array, {objectMode: true, ...}).

License

MIT © Michael Mayer