UNPKG

cron-quartz-ts

Version:

A library that generates quartz corresponding cron expressions

67 lines (66 loc) 2.4 kB
"use strict"; 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;