CronSchedule.parse constructor
CronSchedule.parse(
- String cronFormat
Implementation
factory CronSchedule.parse(String cronFormat) {
final parts =
cronFormat.split(RegExp(r'\s+')).where((p) => p.isNotEmpty).toList();
if (parts.length != 5 && parts.length != 6) {
throw FormatException('Invalid cron expression: $cronFormat');
}
// A 5-field expression has no seconds field, so per standard cron
// semantics it fires once per matching minute (at second 0), not on
// every second of that minute.
final fields = parts.length == 5 ? ['0', ...parts] : parts;
return CronSchedule(
seconds: _parseField(fields[0], 0, 59),
minutes: _parseField(fields[1], 0, 59),
hours: _parseField(fields[2], 0, 23),
days: _parseField(fields[3], 1, 31),
months: _parseField(fields[4], 1, 12),
weekdays: _parseField(fields[5], 1, 7, isWeekday: true),
);
}