Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /home/picotech/domains/rentals.picotech.app/public_html/node_modules/node-cron/dist/cjs/time/ drwxr-xr-x | |
| Viewing file: Select action/file-type: "use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MatcherWalker = void 0;
const convertion_1 = __importDefault(require("../pattern/convertion"));
const localized_time_1 = require("./localized-time");
const time_matcher_1 = require("./time-matcher");
const week_day_names_conversion_1 = __importDefault(require("../pattern/convertion/week-day-names-conversion"));
class MatcherWalker {
cronExpression;
baseDate;
pattern;
expressions;
timeMatcher;
timezone;
constructor(cronExpression, baseDate, timezone) {
this.cronExpression = cronExpression;
this.baseDate = baseDate;
this.timeMatcher = new time_matcher_1.TimeMatcher(cronExpression, timezone);
this.timezone = timezone;
this.expressions = (0, convertion_1.default)(cronExpression);
}
isMatching() {
return this.timeMatcher.match(this.baseDate);
}
matchNext() {
const findNextDateIgnoringWeekday = () => {
const baseDate = new Date(this.baseDate.getTime());
baseDate.setMilliseconds(0);
const localTime = new localized_time_1.LocalizedTime(baseDate, this.timezone);
const dateParts = localTime.getParts();
const date = new localized_time_1.LocalizedTime(localTime.toDate(), this.timezone);
const seconds = this.expressions[0];
const nextSecond = availableValue(seconds, dateParts.second);
if (nextSecond) {
date.set('second', nextSecond);
if (this.timeMatcher.match(date.toDate())) {
return date;
}
}
date.set('second', seconds[0]);
const minutes = this.expressions[1];
const nextMinute = availableValue(minutes, dateParts.minute);
if (nextMinute) {
date.set('minute', nextMinute);
if (this.timeMatcher.match(date.toDate())) {
return date;
}
}
date.set('minute', minutes[0]);
const hours = this.expressions[2];
const nextHour = availableValue(hours, dateParts.hour);
if (nextHour) {
date.set('hour', nextHour);
if (this.timeMatcher.match(date.toDate())) {
return date;
}
}
date.set('hour', hours[0]);
const days = this.expressions[3];
const nextDay = availableValue(days, dateParts.day);
if (nextDay) {
date.set('day', nextDay);
if (this.timeMatcher.match(date.toDate())) {
return date;
}
}
date.set('day', days[0]);
const months = this.expressions[4];
const nextMonth = availableValue(months, dateParts.month);
if (nextMonth) {
date.set('month', nextMonth);
if (this.timeMatcher.match(date.toDate())) {
return date;
}
}
date.set('year', date.getParts().year + 1);
date.set('month', months[0]);
return date;
};
const date = findNextDateIgnoringWeekday();
const weekdays = this.expressions[5];
let currentWeekday = parseInt((0, week_day_names_conversion_1.default)(date.getParts().weekday));
while (!(weekdays.indexOf(currentWeekday) > -1)) {
date.set('year', date.getParts().year + 1);
currentWeekday = parseInt((0, week_day_names_conversion_1.default)(date.getParts().weekday));
}
return date;
}
}
exports.MatcherWalker = MatcherWalker;
function availableValue(values, currentValue) {
const availableValues = values.sort((a, b) => a - b).filter(s => s > currentValue);
if (availableValues.length > 0)
return availableValues[0];
return false;
}
//# sourceMappingURL=matcher-walker.js.map |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0033 ]-- |