diff options
author | Harrison Healey <harrisonmhealey@gmail.com> | 2016-12-20 09:05:56 -0500 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-12-20 09:05:56 -0500 |
commit | d4b890fff10a459a39c2405d2e0f1ecf36b79542 (patch) | |
tree | 9a73cd43904321dfaa4a62367d779229d744dcf3 /webapp/non_npm_dependencies/key-mirror | |
parent | e9a1a8d3d9ee9a952f5552fc708b0e3830b21dd1 (diff) | |
download | chat-d4b890fff10a459a39c2405d2e0f1ecf36b79542.tar.gz chat-d4b890fff10a459a39c2405d2e0f1ecf36b79542.tar.bz2 chat-d4b890fff10a459a39c2405d2e0f1ecf36b79542.zip |
Copied fbjs keymirror into utils (#4807)
* Removed react-addons-pure-render-mixin from NOTICE
* Copied FBJS keymirror into non_npm_dependencies
Diffstat (limited to 'webapp/non_npm_dependencies/key-mirror')
-rw-r--r-- | webapp/non_npm_dependencies/key-mirror/keyMirror.js | 51 |
1 files changed, 51 insertions, 0 deletions
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 |