croner 4.2.0 → 4.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -17
- package/dist/croner.cjs +18 -5
- package/dist/croner.min.js +1 -1
- package/dist/croner.min.js.map +1 -1
- package/dist/croner.min.mjs +1 -1
- package/dist/croner.min.mjs.map +1 -1
- package/package.json +6 -2
- package/src/date.js +12 -4
- package/src/pattern.js +6 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Trigger functions and/or evaluate cron expressions in JavaScript. No dependencie
|
|
|
6
6
|
# Croner
|
|
7
7
|
|
|
8
8
|
 [](https://badge.fury.io/js/croner) [](https://www.codacy.com/gh/Hexagon/croner/dashboard?utm_source=github.com&utm_medium=referral&utm_content=Hexagon/croner&utm_campaign=Badge_Grade)
|
|
9
|
-
[](https://github.com/Hexagon/croner/blob/master/LICENSE) [](https://github.com/Hexagon/croner/blob/master/LICENSE) [](https://www.npmjs.org/package/croner)
|
|
10
10
|

|
|
11
11
|
|
|
12
12
|
* Trigger functions in JavaScript using [Cron](https://en.wikipedia.org/wiki/Cron#CRON_expression) syntax.
|
|
@@ -46,17 +46,19 @@ More [examples](#examples)...
|
|
|
46
46
|
|
|
47
47
|
Because the existing ones aren't good enough. They have serious bugs, use bloated dependencies, do not work in all environments and/or simply don't work as expected.
|
|
48
48
|
|
|
49
|
-
Benchmark at 2022-02-
|
|
49
|
+
Benchmark at 2022-02-20:
|
|
50
50
|
|
|
51
51
|
```
|
|
52
52
|
> node cron-implementation-test.js
|
|
53
53
|
|
|
54
|
-
Test: When is next
|
|
54
|
+
Test: When is 23:00 next 31st march, pattern '0 0 23 31 3 *'
|
|
55
55
|
|
|
56
|
-
node-schedule:
|
|
57
|
-
node-cron:
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
node-schedule: 2022-03-31 23:00:00 in 15.379ms
|
|
57
|
+
node-cron: ??? in 0.339ms
|
|
58
|
+
Month '3' is limited to '30' days.
|
|
59
|
+
cron: 2022-04-01 23:00:00 in 7.785ms
|
|
60
|
+
croner (legacy): 2022-03-31 23:00:00 in 2.142ms
|
|
61
|
+
croner (default): 2022-03-31 23:00:00 in 0.672ms
|
|
60
62
|
```
|
|
61
63
|
|
|
62
64
|
<details>
|
|
@@ -65,18 +67,19 @@ croner: 2022-10-03 00:00:00 in 1.774ms
|
|
|
65
67
|
```
|
|
66
68
|
Test: When is next 15th of february, pattern '0 0 0 15 2 *'
|
|
67
69
|
|
|
68
|
-
node-schedule:
|
|
69
|
-
node-cron:
|
|
70
|
-
cron:
|
|
71
|
-
croner:
|
|
70
|
+
node-schedule: 2023-02-15 00:00:00 in 43.875ms
|
|
71
|
+
node-cron: ??? in 2.217ms
|
|
72
|
+
cron: 2022-03-15 00:00:00 in 4.147ms
|
|
73
|
+
croner (legacy): 2023-02-15 00:00:00 in 1.72ms
|
|
74
|
+
croner (default): 2023-02-15 00:00:00 in 0.946ms
|
|
72
75
|
|
|
73
|
-
Test: When is
|
|
76
|
+
Test: When is next monday in october, pattern '0 0 0 * 10 1'
|
|
74
77
|
|
|
75
|
-
node-schedule:
|
|
76
|
-
node-cron:
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
croner:
|
|
78
|
+
node-schedule: 2022-10-03 00:00:00 in 5.594ms
|
|
79
|
+
node-cron: ??? in 3.62ms
|
|
80
|
+
cron: 2022-11-07 00:00:00 in 1.658ms
|
|
81
|
+
croner (legacy): 2022-10-03 00:00:00 in 0.697ms
|
|
82
|
+
croner (default): 2022-10-03 00:00:00 in 0.546ms
|
|
80
83
|
```
|
|
81
84
|
|
|
82
85
|
</details>
|
package/dist/croner.cjs
CHANGED
|
@@ -82,7 +82,11 @@
|
|
|
82
82
|
this.timezone = timezone;
|
|
83
83
|
|
|
84
84
|
if (date && date instanceof Date) {
|
|
85
|
-
|
|
85
|
+
if (!isNaN(date)) {
|
|
86
|
+
this.fromDate(date);
|
|
87
|
+
} else {
|
|
88
|
+
throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor");
|
|
89
|
+
}
|
|
86
90
|
} else if (date === void 0) {
|
|
87
91
|
this.fromDate(new Date());
|
|
88
92
|
} else if (date && typeof date === "string") {
|
|
@@ -92,6 +96,7 @@
|
|
|
92
96
|
} else {
|
|
93
97
|
throw new TypeError("CronDate: Invalid type (" + typeof date + ") passed as parameter to CronDate constructor");
|
|
94
98
|
}
|
|
99
|
+
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
/**
|
|
@@ -187,8 +192,9 @@
|
|
|
187
192
|
this.milliseconds = 0;
|
|
188
193
|
|
|
189
194
|
const
|
|
195
|
+
|
|
190
196
|
origTime = this.getTime(),
|
|
191
|
-
|
|
197
|
+
|
|
192
198
|
/**
|
|
193
199
|
* Find next
|
|
194
200
|
*
|
|
@@ -202,7 +208,7 @@
|
|
|
202
208
|
*/
|
|
203
209
|
findNext = (target, pattern, offset, override) => {
|
|
204
210
|
|
|
205
|
-
const startPos = (override === void 0) ? this[target] + offset : 0
|
|
211
|
+
const startPos = (override === void 0) ? this[target] + offset : 0;
|
|
206
212
|
|
|
207
213
|
for( let i = startPos; i < pattern[target].length; i++ ) {
|
|
208
214
|
|
|
@@ -305,6 +311,7 @@
|
|
|
305
311
|
|
|
306
312
|
// If pattern didn't provide a match, increment next value (e.g. minues)
|
|
307
313
|
if(!findNext(toDo[doing][0], pattern, toDo[doing][2])) {
|
|
314
|
+
|
|
308
315
|
this[toDo[doing][1]]++;
|
|
309
316
|
|
|
310
317
|
// Reset current level and previous levels
|
|
@@ -312,6 +319,7 @@
|
|
|
312
319
|
|
|
313
320
|
// If pattern provided a match, but changed current value ...
|
|
314
321
|
} else if (currentValue !== this[toDo[doing][0]]) {
|
|
322
|
+
|
|
315
323
|
// Reset previous levels
|
|
316
324
|
resetPrevious(-1);
|
|
317
325
|
|
|
@@ -333,7 +341,7 @@
|
|
|
333
341
|
} else {
|
|
334
342
|
return this;
|
|
335
343
|
}
|
|
336
|
-
|
|
344
|
+
|
|
337
345
|
};
|
|
338
346
|
|
|
339
347
|
/**
|
|
@@ -590,7 +598,8 @@
|
|
|
590
598
|
|
|
591
599
|
this.handleStepping(conf, type, valueIndexOffset);
|
|
592
600
|
|
|
593
|
-
|
|
601
|
+
// Anything left should be a number
|
|
602
|
+
} else if( conf !== "" ) {
|
|
594
603
|
this.handleNumber(conf, type, valueIndexOffset);
|
|
595
604
|
}
|
|
596
605
|
|
|
@@ -622,6 +631,10 @@
|
|
|
622
631
|
CronPattern.prototype.handleNumber = function (conf, type, valueIndexOffset) {
|
|
623
632
|
const i = (parseInt(conf, 10) + valueIndexOffset);
|
|
624
633
|
|
|
634
|
+
if( isNaN(i) ) {
|
|
635
|
+
throw new TypeError("CronPattern: " + type + " is not a number: '" + conf + "'");
|
|
636
|
+
}
|
|
637
|
+
|
|
625
638
|
if( i < 0 || i >= this[type].length ) {
|
|
626
639
|
throw new TypeError("CronPattern: " + type + " value out of range: '" + conf + "'");
|
|
627
640
|
}
|
package/dist/croner.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Cron=factory())})(this,function(){"use strict";function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){this.fromDate(date)}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else{this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};return Cron});
|
|
1
|
+
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory():typeof define==="function"&&define.amd?define(factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,global.Cron=factory())})(this,function(){"use strict";function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};return Cron});
|
package/dist/croner.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","fromDate","fromString","fromCronDate","TypeError","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","isNaN","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
|
package/dist/croner.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){this.fromDate(date)}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else{this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};export{Cron,Cron as default};
|
|
1
|
+
function CronTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}function CronOptions(options){if(options===void 0){options={}}options.legacyMode=options.legacyMode===void 0?false:options.legacyMode;options.paused=options.paused===void 0?false:options.paused;options.maxRuns=options.maxRuns===void 0?Infinity:options.maxRuns;options.catch=options.catch===void 0?false:options.catch;options.kill=false;if(options.startAt){options.startAt=new CronDate(options.startAt,options.timezone)}if(options.stopAt){options.stopAt=new CronDate(options.stopAt,options.timezone)}return options}function CronDate(date,timezone){this.timezone=timezone;if(date&&date instanceof Date){if(!isNaN(date)){this.fromDate(date)}else{throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor")}}else if(date===void 0){this.fromDate(new Date)}else if(date&&typeof date==="string"){this.fromString(date)}else if(date instanceof CronDate){this.fromCronDate(date)}else{throw new TypeError("CronDate: Invalid type ("+typeof date+") passed as parameter to CronDate constructor")}}CronDate.prototype.fromDate=function(date){if(this.timezone){date=CronTZ(date,this.timezone)}this.milliseconds=date.getMilliseconds();this.seconds=date.getSeconds();this.minutes=date.getMinutes();this.hours=date.getHours();this.days=date.getDate();this.months=date.getMonth();this.years=date.getFullYear()};CronDate.prototype.fromCronDate=function(date){this.timezone=date.timezone;this.milliseconds=date.milliseconds;this.seconds=date.seconds;this.minutes=date.minutes;this.hours=date.hours;this.days=date.days;this.months=date.months;this.years=date.years};CronDate.prototype.apply=function(){const newDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);this.milliseconds=newDate.getMilliseconds();this.seconds=newDate.getSeconds();this.minutes=newDate.getMinutes();this.hours=newDate.getHours();this.days=newDate.getDate();this.months=newDate.getMonth();this.years=newDate.getFullYear()};CronDate.prototype.fromString=function(str){const parsedDate=this.parseISOLocal(str);if(isNaN(parsedDate)){throw new TypeError("CronDate: Provided string value for CronDate could not be parsed as date.")}this.fromDate(parsedDate)};CronDate.prototype.increment=function(pattern,options,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;const origTime=this.getTime(),findNext=(target,pattern,offset,override)=>{const startPos=override===void 0?this[target]+offset:0;for(let i=startPos;i<pattern[target].length;i++){let match=pattern[target][i];if(target==="days"){let targetDate=this.getDate(true);targetDate.setDate(i-offset);if(pattern.lastDayOfMonth){let targetDateCopy=new Date(targetDate);targetDateCopy.setDate(i-offset+1);if(targetDateCopy.getMonth()!==this.months){match=true}}const dowMatch=pattern.daysOfWeek[targetDate.getDay()];if(options.legacyMode){if(!pattern.starDayOfWeek&&pattern.starDayOfMonth){match=dowMatch}else if(!pattern.starDayOfWeek&&!pattern.starDayOfMonth){match=match||dowMatch}}else{match=match&&dowMatch}}if(match){this[target]=i-offset;return true}}return false},resetPrevious=offset=>{while(doing+offset>=0){findNext(toDo[doing+offset][0],pattern,toDo[doing+offset][2],0);doing--}};const toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]];let doing=0;while(doing<5){let currentValue=this[toDo[doing][0]];if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious(0)}else if(currentValue!==this[toDo[doing][0]]){resetPrevious(-1)}if(this.years>=4e3){return null}doing++}if(origTime!=this.getTime()){this.apply();return this.increment(pattern,options,true)}else{return this}};CronDate.prototype.getDate=function(internal){const targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{const offset=CronTZ(targetDate,this.timezone).getTime()-targetDate.getTime();return new Date(targetDate.getTime()-offset)}};CronDate.prototype.getTime=function(internal){return this.getDate(internal).getTime()};CronDate.prototype.parseISOLocal=function(dateTimeString){const dateTimeStringSplit=dateTimeString.split(/\D/);if(dateTimeStringSplit.length<6){return NaN}const year=parseInt(dateTimeStringSplit[0],10),month=parseInt(dateTimeStringSplit[1],10),day=parseInt(dateTimeStringSplit[2],10),hour=parseInt(dateTimeStringSplit[3],10),minute=parseInt(dateTimeStringSplit[4],10),second=parseInt(dateTimeStringSplit[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{let generatedDate;if(dateTimeString.indexOf("Z")>0){generatedDate=new Date(Date.UTC(year,month-1,day,hour,minute,second));if(year==generatedDate.getUTCFullYear()&&month==generatedDate.getUTCMonth()+1&&day==generatedDate.getUTCDate()&&hour==generatedDate.getUTCHours()&&minute==generatedDate.getUTCMinutes()&&second==generatedDate.getUTCSeconds()){return generatedDate}else{return NaN}}else{generatedDate=new Date(year,month-1,day,hour,minute,second);if(year==generatedDate.getFullYear()&&month==generatedDate.getMonth()+1&&day==generatedDate.getDate()&&hour==generatedDate.getHours()&&minute==generatedDate.getMinutes()&&second==generatedDate.getSeconds()){return generatedDate}else{return NaN}}}};function CronPattern(pattern,timezone){this.pattern=pattern;this.timezone=timezone;this.seconds=Array(60).fill(0);this.minutes=Array(60).fill(0);this.hours=Array(24).fill(0);this.days=Array(31).fill(0);this.months=Array(12).fill(0);this.daysOfWeek=Array(8).fill(0);this.lastDayOfMonth=false;this.starDayOfMonth=false;this.starDayOfWeek=false;this.parse()}CronPattern.prototype.parse=function(){if(!(typeof this.pattern==="string"||this.pattern.constructor===String)){throw new TypeError("CronPattern: Pattern has to be of type string.")}const parts=this.pattern.trim().replace(/\s+/g," ").split(" ");if(parts.length<5||parts.length>6){throw new TypeError("CronPattern: invalid configuration format ('"+this.pattern+"'), exacly five or six space separated parts required.")}if(parts.length===5){parts.unshift("0")}if(parts[3].indexOf("L")>=0){parts[3]=parts[3].replace("L","");this.lastDayOfMonth=true}if(parts[3].toUpperCase()=="*"){this.starDayOfMonth=true}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);if(parts[5].toUpperCase()=="*"){this.starDayOfWeek=true}let initDate=new CronDate(new Date,this.timezone).getDate(true);parts[0]=parts[0].replace("?",initDate.getSeconds());parts[1]=parts[1].replace("?",initDate.getMinutes());parts[2]=parts[2].replace("?",initDate.getHours());parts[3]=parts[3].replace("?",initDate.getDate());parts[4]=parts[4].replace("?",initDate.getMonth()+1);parts[5]=parts[5].replace("?",initDate.getDay());this.throwAtIllegalCharacters(parts);this.partToArray("seconds",parts[0],0);this.partToArray("minutes",parts[1],0);this.partToArray("hours",parts[2],0);this.partToArray("days",parts[3],-1);this.partToArray("months",parts[4],-1);this.partToArray("daysOfWeek",parts[5],0);if(this.daysOfWeek[7]){this.daysOfWeek[0]=1}};CronPattern.prototype.partToArray=function(type,conf,valueIndexOffset,recursed){const arr=this[type];if(conf==="*"){for(let i=0;i<arr.length;i++){arr[i]=1}return}const split=conf.split(",");if(split.length>1){for(let i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset,true)}}else if(conf.indexOf("-")!==-1&&conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRangeWithStepping(conf,type,valueIndexOffset)}else if(conf.indexOf("-")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){if(recursed)throw new Error("CronPattern: Range with stepping cannot coexist with ,");this.handleStepping(conf,type,valueIndexOffset)}else if(conf!==""){this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){const reValidCron=/[^/*0-9,-]+/;for(let i=0;i<parts.length;i++){if(reValidCron.test(parts[i])){throw new TypeError("CronPattern: configuration entry "+i+" ("+parts[i]+") contains illegal characters.")}}};CronPattern.prototype.handleNumber=function(conf,type,valueIndexOffset){const i=parseInt(conf,10)+valueIndexOffset;if(isNaN(i)){throw new TypeError("CronPattern: "+type+" is not a number: '"+conf+"'")}if(i<0||i>=this[type].length){throw new TypeError("CronPattern: "+type+" value out of range: '"+conf+"'")}this[type][i]=1};CronPattern.prototype.handleRangeWithStepping=function(conf,type,valueIndexOffset){const matches=conf.match(/^(\d+)-(\d+)\/(\d+)$/);if(matches===null)throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '"+conf+"'");let[,lower,upper,steps]=matches;lower=parseInt(lower,10)+valueIndexOffset;upper=parseInt(upper,10)+valueIndexOffset;steps=parseInt(steps,10);if(isNaN(lower))throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");if(isNaN(upper))throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");if(lower<0||upper>=this[type].length)throw new TypeError("CronPattern: Value out of range: '"+conf+"'");if(lower>upper)throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'");for(let i=lower;i<=upper;i+=steps){this[type][i]=1}};CronPattern.prototype.handleRange=function(conf,type,valueIndexOffset){const split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}const lower=parseInt(split[0],10)+valueIndexOffset,upper=parseInt(split[1],10)+valueIndexOffset;if(isNaN(lower)){throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)")}else if(isNaN(upper)){throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)")}if(lower<0||upper>=this[type].length){throw new TypeError("CronPattern: Value out of range: '"+conf+"'")}if(lower>upper){throw new TypeError("CronPattern: From value is larger than to value: '"+conf+"'")}for(let i=lower;i<=upper;i++){this[type][i]=1}};CronPattern.prototype.handleStepping=function(conf,type){const split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}let start=0;if(split[0]!=="*"){start=parseInt(split[0],10)}const steps=parseInt(split[1],10);if(isNaN(steps))throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");if(steps===0)throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");if(steps>this[type].length)throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");for(let i=start;i<this[type].length;i+=steps){this[type][i]=1}};CronPattern.prototype.replaceAlphaDays=function(conf){return conf.replace(/sun/gi,"0").replace(/mon/gi,"1").replace(/tue/gi,"2").replace(/wed/gi,"3").replace(/thu/gi,"4").replace(/fri/gi,"5").replace(/sat/gi,"6")};CronPattern.prototype.replaceAlphaMonths=function(conf){return conf.replace(/jan/gi,"1").replace(/feb/gi,"2").replace(/mar/gi,"3").replace(/apr/gi,"4").replace(/may/gi,"5").replace(/jun/gi,"6").replace(/jul/gi,"7").replace(/aug/gi,"8").replace(/sep/gi,"9").replace(/oct/gi,"10").replace(/nov/gi,"11").replace(/dec/gi,"12")};const maxDelay=Math.pow(2,32-1)-1;function Cron(pattern,options,func){if(!(this instanceof Cron)){return new Cron(pattern,options,func)}if(typeof options==="function"){func=options;options=void 0}this.options=CronOptions(options);this.once=void 0;this.pattern=void 0;if(pattern&&(pattern instanceof Date||typeof pattern==="string"&&pattern.indexOf(":")>0)){this.once=new CronDate(pattern,this.options.timezone)}else{this.pattern=new CronPattern(pattern,this.options.timezone)}if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);return next?next.getDate():null};Cron.prototype.enumerate=function(n,previous){let enumeration=[];while(n--&&(previous=this.next(previous))){enumeration.push(previous)}return enumeration};Cron.prototype.running=function(){const msLeft=this.msToNext(this.previousrun);const running=!this.options.paused&&this.fn!==void 0;return msLeft!==null&&running};Cron.prototype.previous=function(){return this.previousrun?this.previousrun.getDate():null};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);const next=this._next(prev);if(next){return next.getTime(true)-prev.getTime(true)}else{return null}};Cron.prototype.stop=function(){this.options.kill=true;if(this.currentTimeout){clearTimeout(this.currentTimeout)}};Cron.prototype.pause=function(){return(this.options.paused=true)&&!this.options.kill};Cron.prototype.resume=function(){return!(this.options.paused=false)&&!this.options.kill};Cron.prototype.schedule=function(func){if(func&&this.fn){throw new Error("Cron: It is not allowed to schedule two functions using the same Croner instance.")}else if(func){this.fn=func}let waitMs=this.msToNext(this.previousrun);if(waitMs===null)return this;if(waitMs>maxDelay){waitMs=maxDelay}this.currentTimeout=setTimeout(()=>{if(waitMs!==maxDelay&&!this.options.paused){this.options.maxRuns--;if(this.options.catch){try{this.fn(this,this.options.context)}catch(_e){}}else{this.fn(this,this.options.context)}this.previousrun=new CronDate(void 0,this.options.timezone)}this.schedule()},waitMs);return this};Cron.prototype._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=this.options.startAt}const nextRun=this.once||new CronDate(prev,this.options.timezone).increment(this.pattern,this.options);if(this.once&&this.once.getTime(true)<=prev.getTime(true)){return null}else if(nextRun===null||this.options.maxRuns<=0||this.options.kill||this.options.stopAt&&nextRun.getTime(true)>=this.options.stopAt.getTime(true)){return null}else{return nextRun}};export{Cron,Cron as default};
|
package/dist/croner.min.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.mjs"],"names":["CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","this","fromDate","fromString","fromCronDate","TypeError","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","Cron","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.mjs"],"names":["CronTZ","date","tzString","Date","toLocaleString","timeZone","CronOptions","options","legacyMode","paused","maxRuns","Infinity","catch","kill","startAt","CronDate","timezone","stopAt","this","isNaN","fromDate","TypeError","fromString","fromCronDate","prototype","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","newDate","str","parsedDate","parseISOLocal","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","let","i","length","match","targetDate","setDate","lastDayOfMonth","targetDateCopy","dowMatch","daysOfWeek","getDay","starDayOfWeek","starDayOfMonth","resetPrevious","doing","toDo","currentValue","internal","dateTimeString","dateTimeStringSplit","split","NaN","year","parseInt","month","day","hour","minute","second","generatedDate","indexOf","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","toUpperCase","replaceAlphaMonths","replaceAlphaDays","initDate","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","lower","upper","steps","start","maxDelay","Math","pow","Cron","func","once","fn","schedule","next","prev","_next","enumerate","n","previous","enumeration","push","running","msLeft","msToNext","previousrun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","setTimeout","context","_e","nextRun"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "croner",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.3",
|
|
4
4
|
"description": "Trigger functions and/or evaluate cron expressions in JavaScript. No dependencies. Most features. All environmens.",
|
|
5
5
|
"author": "Hexagon <github.com/hexagon>",
|
|
6
6
|
"homepage": "https://hexagon.github.io/croner",
|
|
@@ -28,9 +28,13 @@
|
|
|
28
28
|
"cron",
|
|
29
29
|
"parser",
|
|
30
30
|
"croner",
|
|
31
|
+
"schedule",
|
|
31
32
|
"sheduler",
|
|
32
33
|
"timer",
|
|
33
|
-
"
|
|
34
|
+
"task",
|
|
35
|
+
"job",
|
|
36
|
+
"isomorphic",
|
|
37
|
+
"crontab"
|
|
34
38
|
],
|
|
35
39
|
"scripts": {
|
|
36
40
|
"test": "uvu test test.croner.js",
|
package/src/date.js
CHANGED
|
@@ -13,7 +13,11 @@ function CronDate (date, timezone) {
|
|
|
13
13
|
this.timezone = timezone;
|
|
14
14
|
|
|
15
15
|
if (date && date instanceof Date) {
|
|
16
|
-
|
|
16
|
+
if (!isNaN(date)) {
|
|
17
|
+
this.fromDate(date);
|
|
18
|
+
} else {
|
|
19
|
+
throw new TypeError("CronDate: Invalid date passed as parameter to CronDate constructor");
|
|
20
|
+
}
|
|
17
21
|
} else if (date === void 0) {
|
|
18
22
|
this.fromDate(new Date());
|
|
19
23
|
} else if (date && typeof date === "string") {
|
|
@@ -23,6 +27,7 @@ function CronDate (date, timezone) {
|
|
|
23
27
|
} else {
|
|
24
28
|
throw new TypeError("CronDate: Invalid type (" + typeof date + ") passed as parameter to CronDate constructor");
|
|
25
29
|
}
|
|
30
|
+
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
/**
|
|
@@ -118,8 +123,9 @@ CronDate.prototype.increment = function (pattern, options, rerun) {
|
|
|
118
123
|
this.milliseconds = 0;
|
|
119
124
|
|
|
120
125
|
const
|
|
126
|
+
|
|
121
127
|
origTime = this.getTime(),
|
|
122
|
-
|
|
128
|
+
|
|
123
129
|
/**
|
|
124
130
|
* Find next
|
|
125
131
|
*
|
|
@@ -133,7 +139,7 @@ CronDate.prototype.increment = function (pattern, options, rerun) {
|
|
|
133
139
|
*/
|
|
134
140
|
findNext = (target, pattern, offset, override) => {
|
|
135
141
|
|
|
136
|
-
const startPos = (override === void 0) ? this[target] + offset : 0
|
|
142
|
+
const startPos = (override === void 0) ? this[target] + offset : 0;
|
|
137
143
|
|
|
138
144
|
for( let i = startPos; i < pattern[target].length; i++ ) {
|
|
139
145
|
|
|
@@ -236,6 +242,7 @@ CronDate.prototype.increment = function (pattern, options, rerun) {
|
|
|
236
242
|
|
|
237
243
|
// If pattern didn't provide a match, increment next value (e.g. minues)
|
|
238
244
|
if(!findNext(toDo[doing][0], pattern, toDo[doing][2])) {
|
|
245
|
+
|
|
239
246
|
this[toDo[doing][1]]++;
|
|
240
247
|
|
|
241
248
|
// Reset current level and previous levels
|
|
@@ -243,6 +250,7 @@ CronDate.prototype.increment = function (pattern, options, rerun) {
|
|
|
243
250
|
|
|
244
251
|
// If pattern provided a match, but changed current value ...
|
|
245
252
|
} else if (currentValue !== this[toDo[doing][0]]) {
|
|
253
|
+
|
|
246
254
|
// Reset previous levels
|
|
247
255
|
resetPrevious(-1);
|
|
248
256
|
|
|
@@ -264,7 +272,7 @@ CronDate.prototype.increment = function (pattern, options, rerun) {
|
|
|
264
272
|
} else {
|
|
265
273
|
return this;
|
|
266
274
|
}
|
|
267
|
-
|
|
275
|
+
|
|
268
276
|
};
|
|
269
277
|
|
|
270
278
|
/**
|
package/src/pattern.js
CHANGED
|
@@ -159,7 +159,8 @@ CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset, recu
|
|
|
159
159
|
|
|
160
160
|
this.handleStepping(conf, type, valueIndexOffset);
|
|
161
161
|
|
|
162
|
-
|
|
162
|
+
// Anything left should be a number
|
|
163
|
+
} else if( conf !== "" ) {
|
|
163
164
|
this.handleNumber(conf, type, valueIndexOffset);
|
|
164
165
|
}
|
|
165
166
|
|
|
@@ -191,6 +192,10 @@ CronPattern.prototype.throwAtIllegalCharacters = function (parts) {
|
|
|
191
192
|
CronPattern.prototype.handleNumber = function (conf, type, valueIndexOffset) {
|
|
192
193
|
const i = (parseInt(conf, 10) + valueIndexOffset);
|
|
193
194
|
|
|
195
|
+
if( isNaN(i) ) {
|
|
196
|
+
throw new TypeError("CronPattern: " + type + " is not a number: '" + conf + "'");
|
|
197
|
+
}
|
|
198
|
+
|
|
194
199
|
if( i < 0 || i >= this[type].length ) {
|
|
195
200
|
throw new TypeError("CronPattern: " + type + " value out of range: '" + conf + "'");
|
|
196
201
|
}
|