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); | ||
|  | } |