node-cron-expression
Version:
Declarative functional crontab expression builder
48 lines • 3.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.between = void 0;
const expression_1 = require("./expression");
/**
* Provide two time points of the same type
* to create a range
*
* ```
* between(atMinute(2), atMinute(20)); // 2-20 * * * *
* ```
*
*/
function between(startExpression, endExpression) {
if (startExpression instanceof expression_1.MinuteExpression &&
endExpression instanceof expression_1.MinuteExpression) {
return new expression_1.Expression({
minute: `${startExpression.getMinute()}-${endExpression.getMinute()}`,
});
}
if (startExpression instanceof expression_1.HourExpression &&
endExpression instanceof expression_1.HourExpression) {
return new expression_1.Expression({
hour: `${startExpression.getHour()}-${endExpression.getHour()}`,
});
}
if (startExpression instanceof expression_1.MonthExpression &&
endExpression instanceof expression_1.MonthExpression) {
return new expression_1.Expression({
month: `${startExpression.getMonth()}-${endExpression.getMonth()}`,
});
}
if (startExpression instanceof expression_1.DayOfTheMonthExpression &&
endExpression instanceof expression_1.DayOfTheMonthExpression) {
return new expression_1.Expression({
dayOfTheMonth: `${startExpression.getDayOfTheMonth()}-${endExpression.getDayOfTheMonth()}`,
});
}
if (startExpression instanceof expression_1.DayOfTheWeekExpression &&
endExpression instanceof expression_1.DayOfTheWeekExpression) {
return new expression_1.Expression({
dayOfTheWeek: `${startExpression.getDayOfTheWeek()}-${endExpression.getDayOfTheWeek()}`,
});
}
throw new Error('Unrecognized class or input params of different type');
}
exports.between = between;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0d2Vlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYmV0d2Vlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FPc0I7QUFFdEI7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixPQUFPLENBQ3JCLGVBQWtCLEVBQ2xCLGFBQWdCO0lBRWhCLElBQ0UsZUFBZSxZQUFZLDZCQUFnQjtRQUMzQyxhQUFhLFlBQVksNkJBQWdCLEVBQ3pDO1FBQ0EsT0FBTyxJQUFJLHVCQUFVLENBQUM7WUFDcEIsTUFBTSxFQUFFLEdBQUcsZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsRUFBRTtTQUN0RSxDQUFDLENBQUM7S0FDSjtJQUNELElBQ0UsZUFBZSxZQUFZLDJCQUFjO1FBQ3pDLGFBQWEsWUFBWSwyQkFBYyxFQUN2QztRQUNBLE9BQU8sSUFBSSx1QkFBVSxDQUFDO1lBQ3BCLElBQUksRUFBRSxHQUFHLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFLEVBQUU7U0FDaEUsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxJQUNFLGVBQWUsWUFBWSw0QkFBZTtRQUMxQyxhQUFhLFlBQVksNEJBQWUsRUFDeEM7UUFDQSxPQUFPLElBQUksdUJBQVUsQ0FBQztZQUNwQixLQUFLLEVBQUUsR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFO1NBQ25FLENBQUMsQ0FBQztLQUNKO0lBQ0QsSUFDRSxlQUFlLFlBQVksb0NBQXVCO1FBQ2xELGFBQWEsWUFBWSxvQ0FBdUIsRUFDaEQ7UUFDQSxPQUFPLElBQUksdUJBQVUsQ0FBQztZQUNwQixhQUFhLEVBQUUsR0FBRyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtTQUMzRixDQUFDLENBQUM7S0FDSjtJQUNELElBQ0UsZUFBZSxZQUFZLG1DQUFzQjtRQUNqRCxhQUFhLFlBQVksbUNBQXNCLEVBQy9DO1FBQ0EsT0FBTyxJQUFJLHVCQUFVLENBQUM7WUFDcEIsWUFBWSxFQUFFLEdBQUcsZUFBZSxDQUFDLGVBQWUsRUFBRSxJQUFJLGFBQWEsQ0FBQyxlQUFlLEVBQUUsRUFBRTtTQUN4RixDQUFDLENBQUM7S0FDSjtJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBOUNELDBCQThDQyJ9