diff options
author | RaindropsSys <contact@minteck.org> | 2023-04-04 19:07:33 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-04-04 19:07:33 +0200 |
commit | b9aca19cccf9fd85a05d2ae32846b5b4f25a4dc1 (patch) | |
tree | 1ecb5f1c27f159bb175ecded73d4235fcfb4b5ae /includes/external/addressbook/node_modules/asynckit/lib/state.js | |
parent | 704e1c22efe6056b0fc2f59b2766f47e1c8d71cc (diff) | |
download | pluralconnect-b9aca19cccf9fd85a05d2ae32846b5b4f25a4dc1.tar.gz pluralconnect-b9aca19cccf9fd85a05d2ae32846b5b4f25a4dc1.tar.bz2 pluralconnect-b9aca19cccf9fd85a05d2ae32846b5b4f25a4dc1.zip |
Added 147 files (automated)
Diffstat (limited to 'includes/external/addressbook/node_modules/asynckit/lib/state.js')
-rw-r--r-- | includes/external/addressbook/node_modules/asynckit/lib/state.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/asynckit/lib/state.js b/includes/external/addressbook/node_modules/asynckit/lib/state.js new file mode 100644 index 0000000..cbea7ad --- /dev/null +++ b/includes/external/addressbook/node_modules/asynckit/lib/state.js @@ -0,0 +1,37 @@ +// 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; +} |