-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
30 lines (26 loc) · 957 Bytes
/
index.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
export default (constant, items = []) => {
let constantCollection = {}
if (typeof constant === 'string') {
items.map(i => (constantCollection[i] = `${constant}_${i}`))
}
if (typeof constant === 'object') {
Object.keys(constant).map(cons => {
constantCollection[cons] = {}
if (typeof constant[cons] !== 'string') {
constant[cons].map(i => {
if (typeof i === 'string') {
return constantCollection[cons][i] = `${cons}_${i}`
} else if (typeof i === 'object') {
constantCollection[cons][Object.keys(i)[0]] = {}
i[Object.keys(i)[0]].map(val => {
constantCollection[cons][Object.keys(i)[0]][val] = `${cons}_${Object.keys(i)[0]}_${val}`
})
}
})
} else if (typeof constant[cons] === 'string') {
return constantCollection[cons] = `${cons}_${constant[cons]}`
}
})
}
return constantCollection
}