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