Consolidate toPairs modules.

This commit is contained in:
John-David Dalton
2017-01-11 10:22:56 -08:00
parent aa60e55db4
commit fe5c7a7f3b
4 changed files with 28 additions and 50 deletions

View File

@@ -1,4 +1,7 @@
import createToPairs from './.internal/createToPairs.js';
import arrayMap from './.internal/arrayMap.js';
import getTag from './.internal/getTag.js';
import mapToArray from './.internal/mapToArray.js';
import setToPairs from './.internal/setToPairs.js';
import keysIn from './keysIn.js';
/**
@@ -23,6 +26,15 @@ import keysIn from './keysIn.js';
* toPairsIn(new Foo);
* // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)
*/
const toPairsIn = createToPairs(keysIn);
function toPairsIn(object) {
const tag = getTag(object);
if (tag == '[object Map]') {
return mapToArray(object);
}
if (tag == '[object Set]') {
return setToPairs(object);
}
return arrayMap(keysIn(object), key => [key, object[key]]);
}
export default toPairsIn;