lib/state.js
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;
}
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;
}
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 ; }
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
Creates initial state object for iteration over list