// 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 |
|