forked from trickstival/the-pirate
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
40 lines (35 loc) · 951 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
31
32
33
34
35
36
37
38
39
40
import * as iDom from './dom'
import * as iNumeric from './numeric'
import * as iString from './string'
import * as iColor from './color'
export const dom = iDom
export const numeric = iNumeric
export const string = iString
export const color = iColor
export const truthyJoin = (toMerge, separator = ' ') => {
if (Array.isArray(toMerge)) {
return toMerge.filter(e => e).join(separator)
}
}
export const any = (...items) => items.some(e => e)
export const maybe = (obj, propsStr) => {
const singleMaybe = (obj, prop) => {
if (!obj || !obj[prop]) {
return
}
return obj[prop]
}
if (
!obj ||
!propsStr ||
!(typeof propsStr === 'number' || typeof propsStr === 'string')
) {
return
}
const props = propsStr.split('.')
let retorno = obj
for (const prop of props) {
retorno = singleMaybe(retorno, prop)
}
return retorno
}