| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 'use strict'
- var Readable = require('readable-stream').Readable
- ;
- /**
- * Create a new instance of StreamArray
- *
- * @access private
- * @param {Array} list
- */
- function StreamArray(list) {
- if (!Array.isArray(list))
- throw new TypeError('First argument must be an Array');
- Readable.call(this, {objectMode:true});
- this._i = 0;
- this._l = list.length;
- this._list = list;
- }
- StreamArray.prototype = Object.create(Readable.prototype, {constructor: {value: StreamArray}});
- /**
- * Read the next item from the source Array and push into NodeJS stream
- * @access protected
- * @desc Read the next item from the source Array and push into NodeJS stream
- * @param {number} size The amount of data to read (ignored)
- */
- StreamArray.prototype._read = function(size) {
- this.push(this._i < this._l ? this._list[this._i++] : null);
- };
- /**
- * Create a new instance of StreamArray
- *
- * @module stream-array
- * @desc Push Array elements through a NodeJS stream
- * @type {function}
- * @param {Array} list An Array of objects, strings, numbers, etc
- */
- module.exports = function(list) {
- return new StreamArray(list);
- };
|