cron-quartz-ts
Version:
A library that generates quartz corresponding cron expressions
67 lines (66 loc) • 2.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.specific = exports.start = exports.between = exports.isArray = exports.isInRange = void 0;
var constants_1 = require("./constants");
var splice_into_position_1 = require("./splice_into_position");
function isInRange(num, min, max) {
if (num > max || num < min) {
throw Error("The range is ".concat(min, " - ").concat(max));
}
}
exports.isInRange = isInRange;
function isArray(array) {
if (!Array.isArray(array)) {
throw Error('list type is array');
}
return true;
}
exports.isArray = isArray;
function between(range, cron, position, list) {
if (list && isArray(list) && list.length) {
if (list.length > 2) {
throw Error(constants_1.MORE_THAN_TWO);
}
list.forEach(function (item) { return isInRange(item, range.min, range.max); });
return (0, splice_into_position_1.spliceIntoPosition)(cron, position, list.join('-'));
}
else {
throw Error(constants_1.IS_EMPTY);
}
}
exports.between = between;
function start(ranges, cron, position, list, validatePerListItem) {
if (validatePerListItem === void 0) { validatePerListItem = false; }
if (list && isArray(list) && list.length) {
if (list.length > 2) {
throw Error(constants_1.MORE_THAN_TWO);
}
if (validatePerListItem && ranges.length === 1) {
list.forEach(function (item) { return isInRange(item, ranges[0].min, ranges[0].max); });
}
else {
ranges.forEach(function (range, index) {
isInRange(list[index], range.min, range.max);
});
}
return (0, splice_into_position_1.spliceIntoPosition)(cron, position, list.join('/'));
}
else {
throw Error(constants_1.IS_EMPTY);
}
}
exports.start = start;
function specific(range, cron, position, list, defaultChar) {
if (defaultChar === void 0) { defaultChar = 0; }
if (list && isArray(list)) {
if (list.length) {
list.forEach(function (item) { return isInRange(item, range.min, range.max); });
}
var char = list.length ? list.join(',') : defaultChar;
return (0, splice_into_position_1.spliceIntoPosition)(cron, position, char);
}
else {
throw Error(constants_1.IS_EMPTY);
}
}
exports.specific = specific;