-
-
Notifications
You must be signed in to change notification settings - Fork 343
/
csv-json.js
36 lines (34 loc) · 716 Bytes
/
csv-json.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function namespaceNesting(o, k, v) {
let namespace = '';
const splittedKey = k.split(':');
let key = '';
if (splittedKey.length > 1) {
namespace = splittedKey[0];
key = splittedKey[1];
} else {
key = splittedKey[0];
}
if (!o[namespace]) {
o[namespace] = {};
}
if (splittedKey.length > 2) {
splittedKey.shift();
namespaceNesting(o[namespace], splittedKey.join(':'), v);
} else {
if (v && namespace) {
o[namespace][key] = v;
} else if (v) {
o[key] = v;
}
}
}
function genTsObj(csvEntries) {
const o = {};
for (const item of csvEntries) {
namespaceNesting(o, item.Key, item.Translation);
}
return o;
}
module.exports = {
genTsObj
};