aboutsummaryrefslogtreecommitdiff
path: root/node_modules/fbjs/lib/partitionObjectByKey.js.flow
blob: 120fb3b44d0bb9a5b6da2bfea7e7c77e748db710 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
 * Copyright 2015-present Facebook. All Rights Reserved.
 *
 * @providesModule partitionObjectByKey
 * @typechecks
 * @flow
 */

'use strict';

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;