@alauda-fe/common
Version:
Alauda frontend team common codes.
44 lines • 7.21 kB
JavaScript
export const CRON_ENABLE_7_FOR_SUNDAY = false;
export const CronWeekDays = [
'sun',
'mon',
'tue',
'wed',
'thu',
'fri',
'sat',
];
export const WEEK_DAYS = [...CronWeekDays.slice(1), CronWeekDays[0]];
function formatWeekDaysValue(days) {
return days
.map(v => (v.length === 3 ? CronWeekDays.indexOf(v) : +v))
.sort((a, b) => a - b);
}
export function getCronWeekDayNumbers(schedule) {
const matches = schedule.match(/(?: ((?:\d|mon|tue|wed|thu|fri|sat|sun)(?:,(?:\d|mon|tue|wed|thu|fri|sat|sun))*)| ((?:\d|mon|tue|wed|thu|fri|sat|sun)-(?:\d|mon|tue|wed|thu|fri|sat|sun)))$/);
if (matches) {
const days = matches[1] ? matches[1].split(',') : matches[2].split('-');
return formatWeekDaysValue(days);
}
return null;
}
export function isCronWeekDayCorrect(schedule) {
const dayNumbers = getCronWeekDayNumbers(schedule);
return !(!CRON_ENABLE_7_FOR_SUNDAY && dayNumbers && dayNumbers.pop() === 7);
}
export function isCronWeekDaysContinuous(days) {
if (days.length === 7) {
return true;
}
const sorted = days.sort((a, b) => a - b);
const [first, ...others] = sorted;
// If sunday exists, move it to end
const handled = (first === 0 ? [...others, 7] : [...sorted]).map(item => item - (7 - days.length));
return handled.reduce((prev, cur, index) => prev && (index === 0 || handled[index - 1] + 1 === cur), true);
}
export function isCronFieldCountCorrect(exp) {
const spaceCount = exp.split('').filter(val => val === ' ').length;
const fieldCount = exp.split(' ').filter(Boolean).length;
return spaceCount === 4 && fieldCount === 5;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvdXRpbHMvY3Jvbi11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEtBQUssQ0FBQztBQUk5QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWtCO0lBQ3pDLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7Q0FDTixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXJFLFNBQVMsbUJBQW1CLENBQUMsSUFBYztJQUN6QyxPQUFPLElBQUk7U0FDUixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN4RSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxRQUFnQjtJQUNwRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUM1Qiw2SkFBNkosQ0FDOUosQ0FBQztJQUNGLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEUsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFFBQWdCO0lBQ25ELE1BQU0sVUFBVSxHQUFHLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sQ0FBQyxDQUFDLENBQUMsd0JBQXdCLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQWM7SUFDckQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztJQUNsQyxtQ0FBbUM7SUFDbkMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQzlELElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FDakMsQ0FBQztJQUVGLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ25CLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQ3pELElBQUksQ0FDTCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxHQUFXO0lBQ2pELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNuRSxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekQsT0FBTyxVQUFVLEtBQUssQ0FBQyxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBDUk9OX0VOQUJMRV83X0ZPUl9TVU5EQVkgPSBmYWxzZTtcblxuZXhwb3J0IHR5cGUgQ3JvbldlZWtEYXkgPSAnbW9uJyB8ICd0dWUnIHwgJ3dlZCcgfCAndGh1JyB8ICdmcmknIHwgJ3NhdCcgfCAnc3VuJztcblxuZXhwb3J0IGNvbnN0IENyb25XZWVrRGF5czogQ3JvbldlZWtEYXlbXSA9IFtcbiAgJ3N1bicsXG4gICdtb24nLFxuICAndHVlJyxcbiAgJ3dlZCcsXG4gICd0aHUnLFxuICAnZnJpJyxcbiAgJ3NhdCcsXG5dO1xuXG5leHBvcnQgY29uc3QgV0VFS19EQVlTID0gWy4uLkNyb25XZWVrRGF5cy5zbGljZSgxKSwgQ3JvbldlZWtEYXlzWzBdXTtcblxuZnVuY3Rpb24gZm9ybWF0V2Vla0RheXNWYWx1ZShkYXlzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gZGF5c1xuICAgIC5tYXAodiA9PiAodi5sZW5ndGggPT09IDMgPyBDcm9uV2Vla0RheXMuaW5kZXhPZih2IGFzIENyb25XZWVrRGF5KSA6ICt2KSlcbiAgICAuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JvbldlZWtEYXlOdW1iZXJzKHNjaGVkdWxlOiBzdHJpbmcpOiBudW1iZXJbXSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBzY2hlZHVsZS5tYXRjaChcbiAgICAvKD86ICgoPzpcXGR8bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXR8c3VuKSg/OiwoPzpcXGR8bW9ufHR1ZXx3ZWR8dGh1fGZyaXxzYXR8c3VuKSkqKXwgKCg/OlxcZHxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdHxzdW4pLSg/OlxcZHxtb258dHVlfHdlZHx0aHV8ZnJpfHNhdHxzdW4pKSkkLyxcbiAgKTtcbiAgaWYgKG1hdGNoZXMpIHtcbiAgICBjb25zdCBkYXlzID0gbWF0Y2hlc1sxXSA/IG1hdGNoZXNbMV0uc3BsaXQoJywnKSA6IG1hdGNoZXNbMl0uc3BsaXQoJy0nKTtcbiAgICByZXR1cm4gZm9ybWF0V2Vla0RheXNWYWx1ZShkYXlzKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDcm9uV2Vla0RheUNvcnJlY3Qoc2NoZWR1bGU6IHN0cmluZykge1xuICBjb25zdCBkYXlOdW1iZXJzID0gZ2V0Q3JvbldlZWtEYXlOdW1iZXJzKHNjaGVkdWxlKTtcbiAgcmV0dXJuICEoIUNST05fRU5BQkxFXzdfRk9SX1NVTkRBWSAmJiBkYXlOdW1iZXJzICYmIGRheU51bWJlcnMucG9wKCkgPT09IDcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDcm9uV2Vla0RheXNDb250aW51b3VzKGRheXM6IG51bWJlcltdKSB7XG4gIGlmIChkYXlzLmxlbmd0aCA9PT0gNykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGNvbnN0IHNvcnRlZCA9IGRheXMuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICBjb25zdCBbZmlyc3QsIC4uLm90aGVyc10gPSBzb3J0ZWQ7XG4gIC8vIElmIHN1bmRheSBleGlzdHMsIG1vdmUgaXQgdG8gZW5kXG4gIGNvbnN0IGhhbmRsZWQgPSAoZmlyc3QgPT09IDAgPyBbLi4ub3RoZXJzLCA3XSA6IFsuLi5zb3J0ZWRdKS5tYXAoXG4gICAgaXRlbSA9PiBpdGVtIC0gKDcgLSBkYXlzLmxlbmd0aCksXG4gICk7XG5cbiAgcmV0dXJuIGhhbmRsZWQucmVkdWNlKFxuICAgIChwcmV2LCBjdXIsIGluZGV4KSA9PlxuICAgICAgcHJldiAmJiAoaW5kZXggPT09IDAgfHwgaGFuZGxlZFtpbmRleCAtIDFdICsgMSA9PT0gY3VyKSxcbiAgICB0cnVlLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDcm9uRmllbGRDb3VudENvcnJlY3QoZXhwOiBzdHJpbmcpIHtcbiAgY29uc3Qgc3BhY2VDb3VudCA9IGV4cC5zcGxpdCgnJykuZmlsdGVyKHZhbCA9PiB2YWwgPT09ICcgJykubGVuZ3RoO1xuICBjb25zdCBmaWVsZENvdW50ID0gZXhwLnNwbGl0KCcgJykuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcbiAgcmV0dXJuIHNwYWNlQ291bnQgPT09IDQgJiYgZmllbGRDb3VudCA9PT0gNTtcbn1cbiJdfQ==