ha-job-scheduler
Version:
Highly available cron job scheduler using Redis
33 lines (32 loc) • 986 B
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPreviousDate = exports.defer = void 0;
const cron_parser_1 = __importDefault(require("cron-parser"));
function defer() {
// eslint-disable-next-line
let done = (value) => { };
const promise = new Promise((res) => {
done = res;
});
return {
done,
promise,
};
}
exports.defer = defer;
/**
* Get the previous invocation date based on the rule
*/
const getPreviousDate = (rule) => {
const isString = typeof rule === 'string';
// Parse rule
const interval = isString
? cron_parser_1.default.parseExpression(rule)
: cron_parser_1.default.parseExpression(rule.rule, { tz: rule.tz });
// Previous date
return interval.prev().toDate();
};
exports.getPreviousDate = getPreviousDate;
;