UNPKG

789 BJavaScriptView Raw
1var baseToPairs = require('./_baseToPairs'),
2 getTag = require('./_getTag'),
3 mapToArray = require('./_mapToArray'),
4 setToPairs = require('./_setToPairs');
5
6/** `Object#toString` result references. */
7var mapTag = '[object Map]',
8 setTag = '[object Set]';
9
10/**
11 * Creates a `_.toPairs` or `_.toPairsIn` function.
12 *
13 * @private
14 * @param {Function} keysFunc The function to get the keys of a given object.
15 * @returns {Function} Returns the new pairs function.
16 */
17function createToPairs(keysFunc) {
18 return function(object) {
19 var tag = getTag(object);
20 if (tag == mapTag) {
21 return mapToArray(object);
22 }
23 if (tag == setTag) {
24 return setToPairs(object);
25 }
26 return baseToPairs(object, keysFunc(object));
27 };
28}
29
30module.exports = createToPairs;