-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathobjectUtils.js
44 lines (40 loc) · 1.26 KB
/
objectUtils.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
41
42
43
44
/**
* @param availability
* @returns {string}
*/
import moment from "moment";
export function availabilityToString(availability, day) {
const from = availabilityToMoment(availability, day, 'from');
const to = availabilityToMoment(availability, day, 'to');
if (from && to) {
return `${from.format('HH:mm')} - ${to.format('HH:mm')}`;
}
return '';
}
export function availabilityToMoment(availability, day, toFrom='to') {
if (Object.keys(availability || {}).length && availability[`${day}_${toFrom}`]) {
return moment(availability[`${day}_${toFrom}`], 'HH:mm:ssZZ');
}
return null
}
export function getFromDotNotation(obj, dotNotationAsArr) {
if (!dotNotationAsArr) {
return {};
}
if (dotNotationAsArr.length === 1) {
return obj[dotNotationAsArr[0]] || {};
}
return getFromDotNotation(obj[dotNotationAsArr[0]] || {}, dotNotationAsArr.slice(1));
}
export function deleteFromDotNotation(obj, dotNotationAsArr) {
if (!dotNotationAsArr) {
return;
}
if (dotNotationAsArr.length === 1) {
if (obj[dotNotationAsArr[0]]) {
delete obj[dotNotationAsArr[0]];
}
} else {
deleteFromDotNotation(obj[dotNotationAsArr[0]] || {}, dotNotationAsArr.slice(1));
}
}