UNPKG

@cadence-mq/core

Version:

Modern, type-safe, and performant task queue for Node.js

18 lines (14 loc) 577 B
import { CronExpressionParser } from 'cron-parser'; import { createInvalidCronExpressionError } from '../errors/errors.definitions'; export function getNextExecutionDate({ cron, relativeTo = new Date() }: { cron: string; relativeTo?: Date }) { if (cron.trim() === '') { throw createInvalidCronExpressionError(); } try { const interval = CronExpressionParser.parse(cron, { currentDate: relativeTo }); const nextDate = interval.next().toDate(); return { nextDate }; } catch (error) { throw createInvalidCronExpressionError({ cause: error }); } }