Untitled
unknown
plain_text
2 years ago
795 B
15
Indexable
const { cycleWeekInterval } = config;
// const totalValidNextRun = cycleWeekInterval * daysOfWeeks.length;
// run 20 times of cron
const totalValidNextRun = 20;
const allValidNextRun = [];
for (let i = 0; i < totalValidNextRun; i++) {
allValidNextRun.push(dayjs(interval.next()));
}
// group by week
const groupByWeek = _groupBy(allValidNextRun, (d) => d.week());
const weeks = Object.keys(groupByWeek);
// split by valid week
let validDates = [];
let prevIndex = 0;
for (let i = 0; i < weeks.length; i++) {
prevIndex = prevIndex + cycleWeekInterval;
if (i === 0) {
validDates.push(weeks[i]);
}
if (weeks[prevIndex]) {
validDates.push(weeks[prevIndex]);
}
}
return _flatten(validDates.map((index) => groupByWeek[index]));Editor is loading...
Leave a Comment