fc-cron-parser
Browser library for parsing crontab instructions. Differ from cron-parser, it uses date-fns instead of moment.js to shrink package size. Besides, it excludes support for timezones.
Setup
npm install fc-cron-parser
Supported format
* * * * * *
┬ ┬ ┬ ┬ ┬ ┬
│ │ │ │ │ |
│ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
│ │ │ │ └───── month (1 - 12)
│ │ │ └────────── day of month (1 - 31)
│ │ └─────────────── hour (0 - 23)
│ └──────────────────── minute (0 - 59)
└───────────────────────── second (0 - 59, optional)
Supports mixed use of ranges and range increments (L, W and # characters are not supported currently). See tests for examples.
Usage
Simple expression.
var parser = ; try var interval = parser; console; // Sat Dec 29 2012 00:42:00 GMT+0200 (EET) console; // Sat Dec 29 2012 00:44:00 GMT+0200 (EET) console; // Sat Dec 29 2012 00:42:00 GMT+0200 (EET) console; // Sat Dec 29 2012 00:40:00 GMT+0200 (EET) catch err console;
Iteration with limited timespan. Also returns ES6 compatible iterator (when iterator flag is set to true).
var parser = ; var options = currentDate: 'Wed, 26 Dec 2012 12:38:53 UTC' endDate: 'Wed, 26 Dec 2012 14:40:00 UTC' iterator: true; try var interval = parser; while true try var obj = intervalnext; console; catch e break; // value: Wed Dec 26 2012 14:44:00 GMT+0200 (EET) done: false // value: Wed Dec 26 2012 15:00:00 GMT+0200 (EET) done: false // value: Wed Dec 26 2012 15:22:00 GMT+0200 (EET) done: false // value: Wed Dec 26 2012 15:44:00 GMT+0200 (EET) done: false // value: Wed Dec 26 2012 16:00:00 GMT+0200 (EET) done: false // value: Wed Dec 26 2012 16:22:00 GMT+0200 (EET) done: true catch err console;
Options
- currentDate - Start date of the iteration
- endDate - End date of the iteration
currentDate
and endDate
accept string
, integer
and Date
as input.
In case of using string
as input, not every string format accepted
by the Date
constructor will work correctly. The supported formats are: ISO8601
and the older
ASP.NET JSON Date
format. The reason being that those are the formats accepted by the
moment
library which is being used to handle dates.
Using Date
as an input can be problematic specially when using the tz
option. The issue being that, when creating a new Date
object without
any timezone information, it will be created in the timezone of the system that is running the code. This (most of times) won't be what the user
will be expecting. Using one of the supported string
formats will solve the issue(see timezone example).
- iterator - Return ES6 compatible iterator object