// API
module.exports = state;
/**
* Creates initial state object
* for iteration over list
*
* @param {array|object} list - list to iterate over
* @param {function|null} sortMethod - function to use for keys sort,
* or `null` to keep them as is
* @returns {object} - initial state object
*/
function state(list, sortMethod)
{
var isNamedList = !Array.isArray(list)
, initState =
{
index : 0,
keyedList: isNamedList || sortMethod ? Object.keys(list) : null,
jobs : {},
results : isNamedList ? {} : [],
size : isNamedList ? Object.keys(list).length : list.length
}
;
if (sortMethod)
{
// sort array keys based on it's values
// sort object's keys just on own merit
initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)
{
return sortMethod(list[a], list[b]);
});
}
return initState;
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| abort.js | File | 497 B | 0644 |
|
| async.js | File | 599 B | 0644 |
|
| defer.js | File | 441 B | 0644 |
|
| iterate.js | File | 1.75 KB | 0644 |
|
| readable_asynckit.js | File | 1.57 KB | 0644 |
|
| readable_parallel.js | File | 673 B | 0644 |
|
| readable_serial.js | File | 655 B | 0644 |
|
| readable_serial_ordered.js | File | 941 B | 0644 |
|
| state.js | File | 941 B | 0644 |
|
| streamify.js | File | 2.89 KB | 0644 |
|
| terminator.js | File | 533 B | 0644 |
|