2.1.0 • Published 9 months ago
cron-converter v2.1.0
cron-converter
Cron string parser for node and the browser
Try the online demo and check the source code for the integration.
Install
yarn add cron-converter
or
npm install cron-converter --save
Compatibility
Version 2.1.0
introduces support for the non standard L
character which represents the last day of the month. This feature is on by default and can be turned off by setting the enableLastDayOfMonth
option to false
.
Versions 2.x.x
are not backwards compatible with versions 1.x.x
.
2.x.x | 1.x.x | |
---|---|---|
API | Functional | Object-oriented |
Loader | ESM and CommonJS | CommonJS only |
Type definitions | Bundled | Install @types/cron-converter |
Date/time | Luxon | Moment.js |
Tree-shaking | ✅ | ❌ |
Import
import { stringToArray, arrayToString, getSchedule, getUnits } from "cron-converter";
Usage
Convert a string to an array
// Every 10 mins between 9am and 5pm on the 1st of every month
const arr = stringToArray("*/10 9-17 1 * *");
// Prints:
// [
// [ 0, 10, 20, 30, 40, 50 ],
// [ 9, 10, 11, 12, 13, 14, 15, 16, 17 ],
// [ 1 ],
// [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ],
// [ 0, 1, 2, 3, 4, 5, 6 ]
// ]
console.log(arr);
Convert an array to a string
const str = arrayToString([[0], [1], [1], [5], [0, 2, 4, 6]]);
// Prints: '0 1 1 5 */2'
console.log(str);
Options
outputMonthNames
Default: false
const arr = [[1], [1], [1], [1, 2, 3], [1, 2, 3]];
const str = arrayToString(arr, { outputMonthNames: true });
// Prints: '1 1 1 JAN-MAR 1-3'
console.log(str);
outputWeekdayNames
Default: false
const arr = [[1], [1], [1], [1, 2, 3], [1, 2, 3]];
const str = arrayToString(arr, { outputWeekdayNames: true });
// Prints: '1 1 1 1-3 MON-WED'
console.log(str);
outputHashes
Default: false
const arr = [[1], [1], [1], [1, 6, 11], [0, 1, 2, 3, 4, 5, 6]];
// Prints: '1 1 1 H/5 H'
console.log(arrayToString(arr, { outputHashes: true }));
enableLastDayOfMonth
Default: true
const arr = [[1], [1], [1], [-1], [1]];
// Prints: '1 1 1 L 1'
console.log(arrayToString(arr, { enableLastDayOfMonth: true }));
const str = '1 1 1 L 1';
// Prints: [[1], [1], [1], [-1], [1]]
console.log(stringToArray(str, { enableLastDayOfMonth: true }));
Get the schedule execution times
// Convert a string to an array
const arr = stringToArray("*/5 * * * *");
// Get the iterator, initialised to now
let schedule = getSchedule(arr);
// Optionally pass a reference `Date` and a `timezone`
let reference = new Date(2013, 2, 8, 9, 32);
schedule = getSchedule(arr, reference, "Europe/London");
// Calls to `.next()` and `.prev()` return a Luxon `DateTime` object
// Prints: '2013-03-08T09:35:00+00:00''
console.log(schedule.next().format());
// Prints: '2013-03-08T09:40:00+00:00''
console.log(schedule.next().format());
// Reset
schedule.reset();
// Prints: '2013-03-08T09:30:00+00:00''
console.log(schedule.prev().format());
// Prints: '2013-03-08T09:25:00+00:00''
console.log(schedule.prev().format());
Get the units configuration
This is useful if you are creating a user interface. See units.ts.
const units = getUnits();
Test and build
git clone https://github.com/roccivic/cron-converter
cd cron-converter
yarn
yarn build
yarn test
yarn coverage
2.1.0
9 months ago
2.0.1
2 years ago
2.0.0
3 years ago
1.0.2
3 years ago
1.0.1
4 years ago
1.0.0
6 years ago
0.0.12
8 years ago
0.0.11
9 years ago
0.0.10
9 years ago
0.0.9
9 years ago
0.0.8
10 years ago
0.0.7
10 years ago
0.0.6
10 years ago
0.0.5
10 years ago
0.0.4
10 years ago
0.0.3
10 years ago
0.0.2
10 years ago
0.0.1
10 years ago