2020-02-26 09:05:20 +01:00
|
|
|
function isOneOf(word, arr) {
|
|
|
|
|
if (arr == null || arr.length === 0) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2018-01-20 20:23:27 +01:00
|
|
|
const expression = String.raw`\b(${arr.join('|')})\b`;
|
|
|
|
|
const blacklist = new RegExp(expression, 'ig');
|
|
|
|
|
|
2020-02-26 09:05:20 +01:00
|
|
|
return blacklist.test(word);
|
2018-01-20 20:23:27 +01:00
|
|
|
}
|
|
|
|
|
|
2021-05-30 09:37:45 +02:00
|
|
|
function nullOrEmpty(val) {
|
|
|
|
|
return val == null || val.length === 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function timeStringToMs(timeString, now) {
|
|
|
|
|
const d = new Date(now);
|
|
|
|
|
const parts = timeString.split(':');
|
|
|
|
|
d.setHours(parts[0]);
|
|
|
|
|
d.setMinutes(parts[1]);
|
|
|
|
|
d.setSeconds(0);
|
|
|
|
|
return d.getTime();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function duringWorkingHoursOrNotSet(config, now) {
|
|
|
|
|
const { workingHours } = config;
|
|
|
|
|
if (workingHours == null || nullOrEmpty(workingHours.from) || nullOrEmpty(workingHours.to)) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const toDate = timeStringToMs(workingHours.to, now);
|
|
|
|
|
const fromDate = timeStringToMs(workingHours.from, now);
|
|
|
|
|
|
|
|
|
|
return fromDate <= now && toDate >= now;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = { isOneOf, nullOrEmpty, duringWorkingHoursOrNotSet };
|