From d4b890fff10a459a39c2405d2e0f1ecf36b79542 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 20 Dec 2016 09:05:56 -0500 Subject: Copied fbjs keymirror into utils (#4807) * Removed react-addons-pure-render-mixin from NOTICE * Copied FBJS keymirror into non_npm_dependencies --- .../non_npm_dependencies/key-mirror/keyMirror.js | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 webapp/non_npm_dependencies/key-mirror/keyMirror.js (limited to 'webapp/non_npm_dependencies/key-mirror') diff --git a/webapp/non_npm_dependencies/key-mirror/keyMirror.js b/webapp/non_npm_dependencies/key-mirror/keyMirror.js new file mode 100644 index 000000000..3bd4cff33 --- /dev/null +++ b/webapp/non_npm_dependencies/key-mirror/keyMirror.js @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + * @providesModule keyMirror + * @typechecks static-only + */ + +'use strict'; + +var invariant = require('invariant'); + +/** + * Constructs an enumeration with keys equal to their value. + * + * For example: + * + * var COLORS = keyMirror({blue: null, red: null}); + * var myColor = COLORS.blue; + * var isColorValid = !!COLORS[myColor]; + * + * The last line could not be performed if the values of the generated enum were + * not equal to their keys. + * + * Input: {key1: val1, key2: val2} + * Output: {key1: key1, key2: key2} + * + * @param {object} obj + * @return {object} + */ +var keyMirror = function(obj) { + var ret = {}; + var key; + invariant( + obj instanceof Object && !Array.isArray(obj), + 'keyMirror(...): Argument must be an object.' + ); + for (key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + ret[key] = key; + } + return ret; +}; + +module.exports = keyMirror; \ No newline at end of file -- cgit v1.2.3-1-g7c22