node-cron-expression
Version:
Declarative functional crontab expression builder
44 lines • 3.33 kB
JavaScript
import { DayOfTheMonthExpression, DayOfTheWeekExpression, Expression, HourExpression, MinuteExpression, MonthExpression, } from './expression';
/**
* Provide two time points of the same type
* to create a range
*
* ```
* between(atMinute(2), atMinute(20)); // 2-20 * * * *
* ```
*
*/
export function between(startExpression, endExpression) {
if (startExpression instanceof MinuteExpression &&
endExpression instanceof MinuteExpression) {
return new Expression({
minute: `${startExpression.getMinute()}-${endExpression.getMinute()}`,
});
}
if (startExpression instanceof HourExpression &&
endExpression instanceof HourExpression) {
return new Expression({
hour: `${startExpression.getHour()}-${endExpression.getHour()}`,
});
}
if (startExpression instanceof MonthExpression &&
endExpression instanceof MonthExpression) {
return new Expression({
month: `${startExpression.getMonth()}-${endExpression.getMonth()}`,
});
}
if (startExpression instanceof DayOfTheMonthExpression &&
endExpression instanceof DayOfTheMonthExpression) {
return new Expression({
dayOfTheMonth: `${startExpression.getDayOfTheMonth()}-${endExpression.getDayOfTheMonth()}`,
});
}
if (startExpression instanceof DayOfTheWeekExpression &&
endExpression instanceof DayOfTheWeekExpression) {
return new Expression({
dayOfTheWeek: `${startExpression.getDayOfTheWeek()}-${endExpression.getDayOfTheWeek()}`,
});
}
throw new Error('Unrecognized class or input params of different type');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmV0d2Vlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYmV0d2Vlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixlQUFlLEdBQ2hCLE1BQU0sY0FBYyxDQUFDO0FBRXRCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FDckIsZUFBa0IsRUFDbEIsYUFBZ0I7SUFFaEIsSUFDRSxlQUFlLFlBQVksZ0JBQWdCO1FBQzNDLGFBQWEsWUFBWSxnQkFBZ0IsRUFDekM7UUFDQSxPQUFPLElBQUksVUFBVSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxHQUFHLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUU7U0FDdEUsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxJQUNFLGVBQWUsWUFBWSxjQUFjO1FBQ3pDLGFBQWEsWUFBWSxjQUFjLEVBQ3ZDO1FBQ0EsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixJQUFJLEVBQUUsR0FBRyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFO1NBQ2hFLENBQUMsQ0FBQztLQUNKO0lBQ0QsSUFDRSxlQUFlLFlBQVksZUFBZTtRQUMxQyxhQUFhLFlBQVksZUFBZSxFQUN4QztRQUNBLE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDcEIsS0FBSyxFQUFFLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRTtTQUNuRSxDQUFDLENBQUM7S0FDSjtJQUNELElBQ0UsZUFBZSxZQUFZLHVCQUF1QjtRQUNsRCxhQUFhLFlBQVksdUJBQXVCLEVBQ2hEO1FBQ0EsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixhQUFhLEVBQUUsR0FBRyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtTQUMzRixDQUFDLENBQUM7S0FDSjtJQUNELElBQ0UsZUFBZSxZQUFZLHNCQUFzQjtRQUNqRCxhQUFhLFlBQVksc0JBQXNCLEVBQy9DO1FBQ0EsT0FBTyxJQUFJLFVBQVUsQ0FBQztZQUNwQixZQUFZLEVBQUUsR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLElBQUksYUFBYSxDQUFDLGVBQWUsRUFBRSxFQUFFO1NBQ3hGLENBQUMsQ0FBQztLQUNKO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0FBQzFFLENBQUMifQ==