partitionObjectByKey.js.flow 691 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
/**
 * Copyright 2015-present Facebook. All Rights Reserved.
 *
 * @providesModule partitionObjectByKey
 * @typechecks
 * @flow
 */
'use strict';

import type Set from "./Set";

var partitionObject = require("./partitionObject");
/**
 * Partitions the enumerable properties of an object into two objects, given a
 * whitelist `Set` for the first object. This is comparable to
 * `whitelistObjectKeys`, but eventually keeping all the keys. Returns a tuple
 * of objects `[first, second]`.
 */


function partitionObjectByKey(source: Object, whitelist: Set<string>): [Object, Object] {
  return partitionObject(source, (_, key) => whitelist.has(key));
}

module.exports = partitionObjectByKey;