You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.3 KiB
45 lines
1.3 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const parser = require("cron-parser");
|
|
function daily() {
|
|
const now = new Date();
|
|
const minute = now.getMinutes();
|
|
const hour = now.getHours();
|
|
return `${minute} ${hour} * * *`;
|
|
}
|
|
function weekly() {
|
|
const now = new Date();
|
|
const minute = now.getMinutes();
|
|
const hour = now.getHours();
|
|
const dayOfWeek = now.getDay();
|
|
return `${minute} ${hour} * * ${dayOfWeek}`;
|
|
}
|
|
function monthly() {
|
|
const now = new Date();
|
|
const minute = now.getMinutes();
|
|
const hour = now.getHours();
|
|
const dayOfMonth = now.getDate();
|
|
return `${minute} ${hour} ${dayOfMonth} * *`;
|
|
}
|
|
function parse(s) {
|
|
var interval = parser.parseExpression(s);
|
|
const next = interval.next().toString();
|
|
if (s.endsWith(' * * *')) {
|
|
return { interval: 'daily', next, ms: 86400000 };
|
|
}
|
|
if (s.endsWith(' * *')) {
|
|
return { interval: 'monthly', next, ms: 86400000 * 30 };
|
|
}
|
|
return { interval: 'weekly', next, ms: 86400000 * 7 };
|
|
}
|
|
exports.parse = parse;
|
|
function make(interval) {
|
|
if (interval === 'daily')
|
|
return daily();
|
|
if (interval === 'weekly')
|
|
return weekly();
|
|
if (interval === 'monthly')
|
|
return monthly();
|
|
}
|
|
exports.make = make;
|
|
//# sourceMappingURL=cron.js.map
|