Cron Compose is a TypeScript library designed to make the creation of cron expressions simpler and less error-prone. With an intuitive API, it abstracts the complexities of cron syntax, allowing developers to build cron expressions through method chaining and clear function calls.
- Ease of Use: Construct cron expressions through easy-to-understand method calls.
- Manipulate Existing Strings: Load existing cron expressions and manipulate them.
- Flexibility: Add or remove specific time units or ranges effortlessly.
- Type Safety: Leveage TypeScript's type-checking to avoid invalid inputs.
- Clean Output: Automatically removes unnecessary elements and outputs clean cron strings.
To install Cron Compose, run the following command:
npm install cron-compose
Here's how to use Cron Compose:
import { CronComposer, SlotType } from "cron-compose";
const cronComposer = new CronComposer()
.addSingle(SlotType.Minute, 1)
.addRange(SlotType.Day, 1, 8)
.addRange(SlotType.Day, 6, 13);
console.log(cronComposer.toString()); // "1 * 1-13 * *"
You can also parse existing Cron strings with it:
import { CronComposer } from "cron-compose";
const cronComposer = new CronComposer().parse(
"3-4,5,6-8 */30,*/20 5-8,10-12 1,1 5,3,5 *",
);
console.log(cronComposer.toString()); // "3-8 0,20,30,40 5-8,10-12 1 3,5 *"
Finally, you can use the more human-readable API to create your Cron strings:
import { CronComposer } from "cron-compose";
console.log(
new CronComposer()
.parse("* * * * *")
.every(1, "hours")
.except.at(1, "pm")
.toString(),
); // "* 0-12,14-23 * * *"
To run tests, use the following command:
pnpm run test
I welcome all contributions! Please see CONTRIBUTING.md for details on how to contribute.
This project is licensed under the the MIT License.