Adding option for configurable header
[aai/sparky-fe.git] / src / utils / KeyMirror.js
1 /*
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * Copyright © 2017-2018 Amdocs
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *       http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21 var keyMirror = function (obj) {
22   var ret = {};
23   var key;
24   var val;
25   if (!(obj instanceof Object && !Array.isArray(obj))) {
26     throw new Error('keyMirror(...): Argument must be an object.');
27   }
28   for (key in obj) {
29     if (obj.hasOwnProperty(key)) {
30       val = obj[key];
31       if (val instanceof Object) {
32         ret[key] = keyMirror(obj[key]);
33       } else if (val !== null && val !== undefined) {
34         ret[key] = val;
35       }
36       else {
37         ret[key] = Symbol(key);
38       }
39     }
40   }
41   return Object.freeze(ret);
42 };
43
44 export default keyMirror;