refactor: reduce responsability of individual parts
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import type { RawTask, Task } from "@/types";
|
||||
import CronExpressionParser from "cron-parser";
|
||||
|
||||
export function parseTask(task: RawTask): Task {
|
||||
return {
|
||||
id: task.id,
|
||||
name: task.name,
|
||||
reset_cron: task.reset_cron,
|
||||
check_date: task.check_date ? new Date(task.check_date) : null,
|
||||
previous_check_date: task.previous_check_date
|
||||
? new Date(task.previous_check_date)
|
||||
: null,
|
||||
};
|
||||
}
|
||||
|
||||
export function taskCompleted(task: Task): boolean {
|
||||
if (task.check_date === null) {
|
||||
return false;
|
||||
}
|
||||
if (task.reset_cron === null) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
const interval = CronExpressionParser.parse(task.reset_cron, {currentDate: task.check_date});
|
||||
const nextDate = interval.next();
|
||||
return nextDate.getTime() > (new Date()).getTime();
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user