30 lines
		
	
	
		
			941 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			941 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var serialOrdered = require('../serialOrdered.js');
 | 
						|
 | 
						|
// API
 | 
						|
module.exports = ReadableSerialOrdered;
 | 
						|
// expose sort helpers
 | 
						|
module.exports.ascending  = serialOrdered.ascending;
 | 
						|
module.exports.descending = serialOrdered.descending;
 | 
						|
 | 
						|
/**
 | 
						|
 * Streaming wrapper to `asynckit.serialOrdered`
 | 
						|
 *
 | 
						|
 * @param   {array|object} list - array or object (named list) to iterate over
 | 
						|
 * @param   {function} iterator - iterator to run
 | 
						|
 * @param   {function} sortMethod - custom sort function
 | 
						|
 * @param   {function} callback - invoked when all elements processed
 | 
						|
 * @returns {stream.Readable#}
 | 
						|
 */
 | 
						|
function ReadableSerialOrdered(list, iterator, sortMethod, callback)
 | 
						|
{
 | 
						|
  if (!(this instanceof ReadableSerialOrdered))
 | 
						|
  {
 | 
						|
    return new ReadableSerialOrdered(list, iterator, sortMethod, callback);
 | 
						|
  }
 | 
						|
 | 
						|
  // turn on object mode
 | 
						|
  ReadableSerialOrdered.super_.call(this, {objectMode: true});
 | 
						|
 | 
						|
  this._start(serialOrdered, list, iterator, sortMethod, callback);
 | 
						|
}
 |