@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
26 lines (25 loc) • 795 B
JavaScript
import { ScheduleJobRunner } from './ScheduleJobRunner';
export function createScheduleJobManager(config) {
let jobs = [];
const clearJobs = () => {
jobs.forEach((j) => j?.cancel());
jobs = [];
};
const setUpJobs = () => {
clearJobs();
config.getActiveItems().forEach((item) => {
const schedule = config.getSchedule(item);
if (schedule == null) {
return;
}
const date = ScheduleJobRunner.getNextRunDate(schedule);
if (date != null) {
jobs.push(ScheduleJobRunner.scheduleJob(date, () => {
config.onFire(item);
setUpJobs();
}));
}
});
};
return { setUpJobs, clearJobs };
}