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

}