partitionObjectByKey.js 600 B

123456789101112131415161718192021222324
  1. /**
  2. * Copyright 2015-present Facebook. All Rights Reserved.
  3. *
  4. * @typechecks
  5. *
  6. */
  7. 'use strict';
  8. var partitionObject = require('./partitionObject');
  9. /**
  10. * Partitions the enumerable properties of an object into two objects, given a
  11. * whitelist `Set` for the first object. This is comparable to
  12. * `whitelistObjectKeys`, but eventually keeping all the keys. Returns a tuple
  13. * of objects `[first, second]`.
  14. */
  15. function partitionObjectByKey(source, whitelist) {
  16. return partitionObject(source, function (_, key) {
  17. return whitelist.has(key);
  18. });
  19. }
  20. module.exports = partitionObjectByKey;