croner 4.0.75 → 4.0.76
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 +8 -7
- package/croner.png +0 -0
- package/dist/croner.cjs +59 -18
- 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 +2 -3
- package/src/pattern.js +59 -18
- package/types/pattern.d.ts +1 -0
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://cdn.jsdelivr.net/gh/hexagon/croner@master/croner.png" alt="Croner" width="150" height="
|
|
2
|
+
<img src="https://cdn.jsdelivr.net/gh/hexagon/croner@master/croner.png" alt="Croner" width="150" height="150"><br>
|
|
3
3
|
Trigger functions in javascript using Cron syntax.<br><br>Try it live on <a href="https://jsfiddle.net/hexag0n/hoa8kwsb/">jsfiddle</a>.<br>
|
|
4
4
|
</p>
|
|
5
5
|
|
|
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.jsdelivr.com/package/gh/hexagon/croner)
|
|
10
10
|
|
|
11
11
|
* Trigger functions in JavaScript using [Cron](https://en.wikipedia.org/wiki/Cron#CRON_expression) syntax
|
|
12
12
|
* Pause, resume or stop execution efter a task is scheduled
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Works in Deno >=1.16
|
|
16
16
|
* Works in browsers as standalone, UMD or ES-module.
|
|
17
17
|
* **Experimental feature:** Schedule in specific target timezones
|
|
18
|
-
* Includes [TypeScript](https://www.typescriptlang.org/) typings
|
|
18
|
+
* Includes [TypeScript](https://www.typescriptlang.org/) typings
|
|
19
19
|
|
|
20
20
|
Quick examples:
|
|
21
21
|
|
|
@@ -135,7 +135,7 @@ job.schedule(() => {});
|
|
|
135
135
|
// States
|
|
136
136
|
let nextRun = job.next( /*optional*/ previousRun ); // Get a Date object representing next run
|
|
137
137
|
let prevRun = job.previous( );
|
|
138
|
-
let msToNext = job.msToNext( /*optional*/
|
|
138
|
+
let msToNext = job.msToNext( /*optional*/ previousRun ); // Milliseconds left to next execution
|
|
139
139
|
let isRunning = job.running();
|
|
140
140
|
|
|
141
141
|
// Control scheduled execution
|
|
@@ -186,9 +186,10 @@ job.stop();
|
|
|
186
186
|
#### Expressions
|
|
187
187
|
```javascript
|
|
188
188
|
// Run a function according to pattern
|
|
189
|
-
Cron('
|
|
190
|
-
console.log('This will run
|
|
191
|
-
console.log('of hour 1,2 and 3
|
|
189
|
+
Cron('15-45/10 */5 1,2,3 * JAN-MAR SAT', function () {
|
|
190
|
+
console.log('This will run every tenth second between second 15-45');
|
|
191
|
+
console.log('every fifth minute of hour 1,2 and 3');
|
|
192
|
+
console.log('every saturday in January to March.');
|
|
192
193
|
});
|
|
193
194
|
```
|
|
194
195
|
|
package/croner.png
CHANGED
|
Binary file
|
package/dist/croner.cjs
CHANGED
|
@@ -393,37 +393,45 @@
|
|
|
393
393
|
* @param {CronPatternPart} type - Seconds/minutes etc
|
|
394
394
|
* @param {string} conf - Current pattern part - *, 0-1 etc
|
|
395
395
|
* @param {CronIndexOffset} valueIndexOffset
|
|
396
|
+
* @param {boolean} [recursed] - Is this a recursed call
|
|
396
397
|
*/
|
|
397
|
-
CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset) {
|
|
398
|
+
CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset, recursed) {
|
|
398
399
|
|
|
399
|
-
|
|
400
|
-
split,
|
|
401
|
-
arr = this[type];
|
|
400
|
+
const arr = this[type];
|
|
402
401
|
|
|
403
402
|
// First off, handle wildcard
|
|
404
403
|
if( conf === "*" ) {
|
|
405
|
-
for( i = 0; i < arr.length; i++ ) {
|
|
404
|
+
for( let i = 0; i < arr.length; i++ ) {
|
|
406
405
|
arr[i] = 1;
|
|
407
406
|
}
|
|
408
407
|
return;
|
|
409
408
|
}
|
|
410
409
|
|
|
411
410
|
// Handle separated entries (,) by recursion
|
|
412
|
-
split = conf.split(",");
|
|
411
|
+
const split = conf.split(",");
|
|
413
412
|
if( split.length > 1 ) {
|
|
414
|
-
for( i = 0; i < split.length; i++ ) {
|
|
415
|
-
this.partToArray(type, split[i], valueIndexOffset);
|
|
413
|
+
for( let i = 0; i < split.length; i++ ) {
|
|
414
|
+
this.partToArray(type, split[i], valueIndexOffset, true);
|
|
416
415
|
}
|
|
417
416
|
|
|
418
|
-
// Handle range (-)
|
|
417
|
+
// Handle range with stepping (x-y/z)
|
|
418
|
+
} else if( conf.indexOf("-") !== -1 && conf.indexOf("/") !== -1 ) {
|
|
419
|
+
if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
|
|
420
|
+
|
|
421
|
+
this.handleRangeWithStepping(conf, type, valueIndexOffset);
|
|
422
|
+
|
|
423
|
+
// Handle range
|
|
419
424
|
} else if( conf.indexOf("-") !== -1 ) {
|
|
425
|
+
if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
|
|
426
|
+
|
|
420
427
|
this.handleRange(conf, type, valueIndexOffset);
|
|
421
428
|
|
|
422
|
-
// Handle stepping
|
|
429
|
+
// Handle stepping
|
|
423
430
|
} else if( conf.indexOf("/") !== -1 ) {
|
|
431
|
+
if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
|
|
432
|
+
|
|
424
433
|
this.handleStepping(conf, type, valueIndexOffset);
|
|
425
434
|
|
|
426
|
-
// Handle pure number
|
|
427
435
|
} else {
|
|
428
436
|
this.handleNumber(conf, type, valueIndexOffset);
|
|
429
437
|
}
|
|
@@ -437,7 +445,7 @@
|
|
|
437
445
|
* @param {string[]} parts - Each part split as strings
|
|
438
446
|
*/
|
|
439
447
|
CronPattern.prototype.throwAtIllegalCharacters = function (parts) {
|
|
440
|
-
|
|
448
|
+
const reValidCron = /[^/*0-9,-]+/;
|
|
441
449
|
for(let i = 0; i < parts.length; i++) {
|
|
442
450
|
if( reValidCron.test(parts[i]) ) {
|
|
443
451
|
throw new TypeError("CronPattern: configuration entry " + i + " (" + parts[i] + ") contains illegal characters.");
|
|
@@ -463,6 +471,38 @@
|
|
|
463
471
|
this[type][i] = 1;
|
|
464
472
|
};
|
|
465
473
|
|
|
474
|
+
/**
|
|
475
|
+
* Take care of ranges with stepping (e.g. 3-23/5)
|
|
476
|
+
* @private
|
|
477
|
+
*
|
|
478
|
+
* @param {string} conf - Current part, expected to be a string like 3-23/5
|
|
479
|
+
* @param {string} type - One of "seconds", "minutes" etc
|
|
480
|
+
* @param {number} valueIndexOffset - -1 for day of month, and month, as they start at 1. 0 for seconds, hours, minutes
|
|
481
|
+
*/
|
|
482
|
+
CronPattern.prototype.handleRangeWithStepping = function (conf, type, valueIndexOffset) {
|
|
483
|
+
let matches = conf.match(/^(\d+)-(\d+)\/(\d+)$/);
|
|
484
|
+
|
|
485
|
+
if( matches === null ) throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '" + conf + "'");
|
|
486
|
+
|
|
487
|
+
let [, lower, upper, steps] = matches;
|
|
488
|
+
lower = parseInt(lower, 10) + valueIndexOffset;
|
|
489
|
+
upper = parseInt(upper, 10) + valueIndexOffset;
|
|
490
|
+
steps = parseInt(steps, 10) + valueIndexOffset;
|
|
491
|
+
|
|
492
|
+
if( isNaN(lower) ) throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");
|
|
493
|
+
if( isNaN(upper) ) throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");
|
|
494
|
+
if( isNaN(steps) ) throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");
|
|
495
|
+
|
|
496
|
+
if( steps === 0 ) throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");
|
|
497
|
+
if( steps > this[type].length ) throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");
|
|
498
|
+
|
|
499
|
+
if( lower < 0 || upper >= this[type].length ) throw new TypeError("CronPattern: Value out of range: '" + conf + "'");
|
|
500
|
+
if( lower > upper ) throw new TypeError("CronPattern: From value is larger than to value: '" + conf + "'");
|
|
501
|
+
|
|
502
|
+
for (let i = lower; i <= upper; i += steps) {
|
|
503
|
+
this[type][(i + valueIndexOffset)] = 1;
|
|
504
|
+
}
|
|
505
|
+
};
|
|
466
506
|
|
|
467
507
|
/**
|
|
468
508
|
* Take care of ranges (e.g. 1-20)
|
|
@@ -473,13 +513,13 @@
|
|
|
473
513
|
* @param {number} valueIndexOffset - -1 for day of month, and month, as they start at 1. 0 for seconds, hours, minutes
|
|
474
514
|
*/
|
|
475
515
|
CronPattern.prototype.handleRange = function (conf, type, valueIndexOffset) {
|
|
476
|
-
|
|
516
|
+
const split = conf.split("-");
|
|
477
517
|
|
|
478
518
|
if( split.length !== 2 ) {
|
|
479
519
|
throw new TypeError("CronPattern: Syntax error, illegal range: '" + conf + "'");
|
|
480
520
|
}
|
|
481
521
|
|
|
482
|
-
|
|
522
|
+
const lower = parseInt(split[0], 10) + valueIndexOffset,
|
|
483
523
|
upper = parseInt(split[1], 10) + valueIndexOffset;
|
|
484
524
|
|
|
485
525
|
if( isNaN(lower) ) {
|
|
@@ -513,23 +553,24 @@
|
|
|
513
553
|
*/
|
|
514
554
|
CronPattern.prototype.handleStepping = function (conf, type, valueIndexOffset) {
|
|
515
555
|
|
|
516
|
-
|
|
556
|
+
const split = conf.split("/");
|
|
517
557
|
|
|
518
558
|
if( split.length !== 2 ) {
|
|
519
559
|
throw new TypeError("CronPattern: Syntax error, illegal stepping: '" + conf + "'");
|
|
520
560
|
}
|
|
521
561
|
|
|
562
|
+
let start = 0;
|
|
522
563
|
if( split[0] !== "*" ) {
|
|
523
|
-
|
|
564
|
+
start = parseInt(split[0], 10);
|
|
524
565
|
}
|
|
525
566
|
|
|
526
|
-
|
|
567
|
+
const steps = parseInt(split[1], 10);
|
|
527
568
|
|
|
528
569
|
if( isNaN(steps) ) throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");
|
|
529
570
|
if( steps === 0 ) throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");
|
|
530
571
|
if( steps > this[type].length ) throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");
|
|
531
572
|
|
|
532
|
-
for( let i =
|
|
573
|
+
for( let i = start; i < this[type].length; i+= steps ) {
|
|
533
574
|
this[type][(i + valueIndexOffset)] = 1;
|
|
534
575
|
}
|
|
535
576
|
};
|
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 convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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,fromLocal){if(this.timezone&&!fromLocal){date=convertTZ(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(){let 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){let 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,true)};CronDate.prototype.increment=function(pattern,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;let self=this,origTime=self.getTime(),findNext=function(target,pattern,offset,override){let startPos=override===void 0?self[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){if(pattern[target][i]){self[target]=i-offset;return true}}return false},resetPrevious=function(){while(doing>=0){findNext(toDo[doing][0],pattern,toDo[doing][2],0);doing--}};let toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]],doing=0;while(doing<5){if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious()}if(this.years>=4e3){return null}doing++}while(!pattern.daysOfWeek[this.getDate(true).getDay()]){this.days+=1;doing=2;resetPrevious()}if(origTime!=self.getTime()){self.apply();return self.increment(pattern,true)}else{return this}};CronDate.prototype.getDate=function(internal){let targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{let offset=convertTZ(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(s){let b=s.split(/\D/);if(b.length<6){return NaN}let year=parseInt(b[0],10),month=parseInt(b[1],10),day=parseInt(b[2],10),hour=parseInt(b[3],10),minute=parseInt(b[4],10),second=parseInt(b[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{return new Date(year,month-1,day,hour,minute,second)}};function CronPattern(pattern){this.pattern=pattern;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.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.")}let 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")}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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){let i,split,arr=this[type];if(conf==="*"){for(i=0;i<arr.length;i++){arr[i]=1}return}split=conf.split(",");if(split.length>1){for(i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else{this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){let 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){let 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.handleRange=function(conf,type,valueIndexOffset){let split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}let 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+valueIndexOffset]=1}};CronPattern.prototype.handleStepping=function(conf,type,valueIndexOffset){let split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}if(split[0]!=="*"){throw new TypeError("CronPattern: Syntax error, left part of / needs to be * : '"+conf+"'")}let 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=0;i<this[type].length;i+=steps){this[type][i+valueIndexOffset]=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){let self=this;if(!(this instanceof Cron)){return new Cron(pattern,options,func)}self.pattern=new CronPattern(pattern);if(typeof options==="function"){func=options;options=void 0}this.options=this.processOptions(options);if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.processOptions=function(options){if(options===void 0){options={}}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};Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);let next=this._next(prev);return next?next.getDate():null};Cron.prototype.running=function(){let msLeft=this.msToNext(this.previousrun);let 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._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=new CronDate(this.options.startAt,this.options.timezone)}let nextRun=new CronDate(prev,this.options.timezone).increment(this.pattern);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}};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);let 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){let self=this,waitMs=this.msToNext(self.previousrun),_maxDelay=self.maxDelay||maxDelay;if(waitMs>_maxDelay){waitMs=_maxDelay}if(func){self.fn=func}if(waitMs!==null){self.currentTimeout=setTimeout(function(){if(waitMs!==_maxDelay){if(!self.options.paused){self.options.maxRuns--;if(self.options.catch){try{self.fn(self)}catch(_e){}}else{self.fn(self)}}self.previousrun=new CronDate(void 0,self.options.timezone)}self.schedule()},waitMs)}return this};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 convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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,fromLocal){if(this.timezone&&!fromLocal){date=convertTZ(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(){let 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){let 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,true)};CronDate.prototype.increment=function(pattern,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;let self=this,origTime=self.getTime(),findNext=function(target,pattern,offset,override){let startPos=override===void 0?self[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){if(pattern[target][i]){self[target]=i-offset;return true}}return false},resetPrevious=function(){while(doing>=0){findNext(toDo[doing][0],pattern,toDo[doing][2],0);doing--}};let toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]],doing=0;while(doing<5){if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious()}if(this.years>=4e3){return null}doing++}while(!pattern.daysOfWeek[this.getDate(true).getDay()]){this.days+=1;doing=2;resetPrevious()}if(origTime!=self.getTime()){self.apply();return self.increment(pattern,true)}else{return this}};CronDate.prototype.getDate=function(internal){let targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{let offset=convertTZ(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(s){let b=s.split(/\D/);if(b.length<6){return NaN}let year=parseInt(b[0],10),month=parseInt(b[1],10),day=parseInt(b[2],10),hour=parseInt(b[3],10),minute=parseInt(b[4],10),second=parseInt(b[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{return new Date(year,month-1,day,hour,minute,second)}};function CronPattern(pattern){this.pattern=pattern;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.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.")}let 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")}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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){let 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){let 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)+valueIndexOffset;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+valueIndexOffset]=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+valueIndexOffset]=1}};CronPattern.prototype.handleStepping=function(conf,type,valueIndexOffset){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+valueIndexOffset]=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){let self=this;if(!(this instanceof Cron)){return new Cron(pattern,options,func)}self.pattern=new CronPattern(pattern);if(typeof options==="function"){func=options;options=void 0}this.options=this.processOptions(options);if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.processOptions=function(options){if(options===void 0){options={}}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};Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);let next=this._next(prev);return next?next.getDate():null};Cron.prototype.running=function(){let msLeft=this.msToNext(this.previousrun);let 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._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=new CronDate(this.options.startAt,this.options.timezone)}let nextRun=new CronDate(prev,this.options.timezone).increment(this.pattern);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}};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);let 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){let self=this,waitMs=this.msToNext(self.previousrun),_maxDelay=self.maxDelay||maxDelay;if(waitMs>_maxDelay){waitMs=_maxDelay}if(func){self.fn=func}if(waitMs!==null){self.currentTimeout=setTimeout(function(){if(waitMs!==_maxDelay){if(!self.options.paused){self.options.maxRuns--;if(self.options.catch){try{self.fn(self)}catch(_e){}}else{self.fn(self)}}self.previousrun=new CronDate(void 0,self.options.timezone)}self.schedule()},waitMs)}return this};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","convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","fromDate","fromString","fromCronDate","TypeError","prototype","fromLocal","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","let","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","i","length","resetPrevious","doing","toDo","daysOfWeek","getDay","internal","targetDate","s","b","split","NaN","year","parseInt","month","day","hour","minute","second","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","replaceAlphaMonths","replaceAlphaDays","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","indexOf","handleRange","handleStepping","handleNumber","reValidCron","test","lower","upper","steps","maxDelay","Math","pow","options","func","processOptions","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","running","msLeft","msToNext","previousrun","previous","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","_maxDelay","setTimeout","_e"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.cjs"],"names":["global","factory","exports","module","define","amd","globalThis","self","Cron","this","convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","fromDate","fromString","fromCronDate","TypeError","prototype","fromLocal","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","let","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","origTime","getTime","findNext","target","offset","override","startPos","i","length","resetPrevious","doing","toDo","daysOfWeek","getDay","internal","targetDate","s","b","split","NaN","year","parseInt","month","day","hour","minute","second","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","replaceAlphaMonths","replaceAlphaDays","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","indexOf","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","match","lower","upper","steps","start","maxDelay","Math","pow","options","func","processOptions","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","running","msLeft","msToNext","previousrun","previous","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","_maxDelay","setTimeout","_e"],"mappings":"CAAA,SAAWA,OAAQC,gBACXC,UAAY,iBAAmBC,SAAW,YAAcA,OAAOD,QAAUD,iBACzEG,SAAW,YAAcA,OAAOC,IAAMD,OAAOH,UACnDD,cAAgBM,aAAe,YAAcA,WAAaN,QAAUO,KAAMP,OAAOQ,KAAOP,YAH1F,CAIGQ,KAAM,wBAkBR,SAASC,UAAUC,KAAMC,UACxB,OAAO,IAAIC,KAAKF,KAAKG,eAAe,QAAS,CAACC,SAAUH,YAUzD,SAASI,SAAUL,KAAMM,UAExBR,KAAKQ,SAAWA,SAEhB,GAAIN,MAAQA,gBAAgBE,KAAM,CACjCJ,KAAKS,SAASP,WACR,GAAIA,YAAc,EAAG,CAC3BF,KAAKS,SAAS,IAAIL,WACZ,GAAIF,aAAeA,OAAS,SAAU,CAC5CF,KAAKU,WAAWR,WACV,GAAIA,gBAAgBK,SAAU,CACpCP,KAAKW,aAAaT,UACZ,CACN,MAAM,IAAIU,UAAU,kCAAoCV,KAAO,kDAWjEK,SAASM,UAAUJ,SAAW,SAAUP,KAAMY,WAE7C,GAAId,KAAKQ,WAAaM,UAAW,CAChCZ,KAAOD,UAAUC,KAAMF,KAAKQ,UAG7BR,KAAKe,aAAeb,KAAKc,kBACzBhB,KAAKiB,QAAUf,KAAKgB,aACpBlB,KAAKmB,QAAUjB,KAAKkB,aACpBpB,KAAKqB,MAAQnB,KAAKoB,WAClBtB,KAAKuB,KAAOrB,KAAKsB,UACjBxB,KAAKyB,OAAUvB,KAAKwB,WACpB1B,KAAK2B,MAAQzB,KAAK0B,eASnBrB,SAASM,UAAUF,aAAe,SAAUT,MAC3CF,KAAKQ,SAAWN,KAAKM,SACrBR,KAAKe,aAAeb,KAAKa,aACzBf,KAAKiB,QAAUf,KAAKe,QACpBjB,KAAKmB,QAAUjB,KAAKiB,QACpBnB,KAAKqB,MAAQnB,KAAKmB,MAClBrB,KAAKuB,KAAOrB,KAAKqB,KACjBvB,KAAKyB,OAAUvB,KAAKuB,OACpBzB,KAAK2B,MAAQzB,KAAKyB,OASnBpB,SAASM,UAAUgB,MAAQ,WAC1BC,IAAIC,QAAU,IAAI3B,KAAKJ,KAAK2B,MAAO3B,KAAKyB,OAAQzB,KAAKuB,KAAMvB,KAAKqB,MAAOrB,KAAKmB,QAASnB,KAAKiB,QAASjB,KAAKe,cAExGf,KAAKe,aAAegB,QAAQf,kBAC5BhB,KAAKiB,QAAUc,QAAQb,aACvBlB,KAAKmB,QAAUY,QAAQX,aACvBpB,KAAKqB,MAAQU,QAAQT,WACrBtB,KAAKuB,KAAOQ,QAAQP,UACpBxB,KAAKyB,OAAUM,QAAQL,WACvB1B,KAAK2B,MAAQI,QAAQH,eAStBrB,SAASM,UAAUH,WAAa,SAAUsB,KAEzCF,IAAIG,WAAajC,KAAKkC,cAAcF,KAGpC,GAAIG,MAAMF,YAAc,CACvB,MAAM,IAAIrB,UAAU,6EAGrBZ,KAAKS,SAASwB,WAAY,OAW3B1B,SAASM,UAAUuB,UAAY,SAAUC,QAASC,OAEjD,IAAKA,MAAO,CACXtC,KAAKiB,SAAW,EAGjBjB,KAAKe,aAAe,EAEpBe,IAAIhC,KAAOE,KACVuC,SAAWzC,KAAK0C,UAchBC,SAAW,SAAUC,OAAQL,QAASM,OAAQC,UAE7Cd,IAAIe,SAAYD,gBAAkB,EAAK9C,KAAK4C,QAAUC,OAAS,EAAIA,OAEnE,IAAKb,IAAIgB,EAAID,SAAUC,EAAIT,QAAQK,QAAQK,OAAQD,IAAM,CAExD,GAAIT,QAAQK,QAAQI,GAAK,CACxBhD,KAAK4C,QAAUI,EAAEH,OACjB,OAAO,MAGT,OAAO,OAIRK,cAAgB,WAKf,MAAMC,OAAS,EAAG,CAOjBR,SAASS,KAAKD,OAAO,GAAIZ,QAASa,KAAKD,OAAO,GAAI,GAGlDA,UAWHnB,IAAIoB,KAAO,CACT,CAAC,UAAW,UAAW,GACvB,CAAC,UAAW,QAAS,GACrB,CAAC,QAAS,OAAQ,GAClB,CAAC,OAAQ,UAAW,GACpB,CAAC,SAAU,QAAS,IAErBD,MAAQ,EAIT,MAAMA,MAAQ,EAAG,CAOhB,IAAIR,SAASS,KAAKD,OAAO,GAAIZ,QAASa,KAAKD,OAAO,IAAK,CACtDjD,KAAKkD,KAAKD,OAAO,MACjBD,gBAID,GAAIhD,KAAK2B,OAAS,IAAM,CACvB,OAAO,KAIRsB,QAKD,OAAQZ,QAAQc,WAAWnD,KAAKwB,QAAQ,MAAM4B,UAAW,CACxDpD,KAAKuB,MAAQ,EACb0B,MAAQ,EACRD,gBAID,GAAIT,UAAYzC,KAAK0C,UAAW,CAC/B1C,KAAK+B,QACL,OAAO/B,KAAKsC,UAAUC,QAAS,UACzB,CACN,OAAOrC,OAYTO,SAASM,UAAUW,QAAU,SAAU6B,UACtCvB,IAAIwB,WAAa,IAAIlD,KAAKJ,KAAK2B,MAAO3B,KAAKyB,OAAQzB,KAAKuB,KAAMvB,KAAKqB,MAAOrB,KAAKmB,QAASnB,KAAKiB,QAASjB,KAAKe,cAC3G,GAAIsC,WAAarD,KAAKQ,SAAU,CAC/B,OAAO8C,eACD,CACNxB,IAAIa,OAAS1C,UAAUqD,WAAYtD,KAAKQ,UAAUgC,UAAUc,WAAWd,UACvE,OAAO,IAAIpC,KAAKkD,WAAWd,UAAUG,UAWvCpC,SAASM,UAAU2B,QAAU,SAAUa,UACtC,OAAOrD,KAAKwB,QAAQ6B,UAAUb,WAW/BjC,SAASM,UAAUqB,cAAgB,SAAUqB,GAC5CzB,IAAI0B,EAAID,EAAEE,MAAM,MAGhB,GAAID,EAAET,OAAS,EAAG,CACjB,OAAOW,IAGR5B,IACC6B,KAAOC,SAASJ,EAAE,GAAI,IACtBK,MAAQD,SAASJ,EAAE,GAAI,IACvBM,IAAMF,SAASJ,EAAE,GAAI,IACrBO,KAAOH,SAASJ,EAAE,GAAI,IACtBQ,OAASJ,SAASJ,EAAE,GAAI,IACxBS,OAASL,SAASJ,EAAE,GAAI,IAGzB,GAAIrB,MAAMwB,OAASxB,MAAM0B,QAAU1B,MAAM2B,MAAQ3B,MAAM4B,OAAS5B,MAAM6B,SAAW7B,MAAM8B,QAAU,CAChG,OAAOP,QACD,CACN,OAAO,IAAItD,KAAKuD,KAAME,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,UAuBpD,SAASC,YAAa7B,SAErBrC,KAAKqC,QAAYA,QAEjBrC,KAAKiB,QAAiBkD,MAAM,IAAIC,KAAK,GACrCpE,KAAKmB,QAAiBgD,MAAM,IAAIC,KAAK,GACrCpE,KAAKqB,MAAiB8C,MAAM,IAAIC,KAAK,GACrCpE,KAAKuB,KAAiB4C,MAAM,IAAIC,KAAK,GACrCpE,KAAKyB,OAAiB0C,MAAM,IAAIC,KAAK,GACrCpE,KAAKmD,WAAiBgB,MAAM,GAAGC,KAAK,GAEpCpE,KAAKqE,QAQNH,YAAYrD,UAAUwD,MAAQ,WAG7B,YAAarE,KAAKqC,UAAY,UAAYrC,KAAKqC,QAAQiC,cAAgBC,QAAU,CAChF,MAAM,IAAI3D,UAAU,kDAIrBkB,IAAI0C,MAAQxE,KAAKqC,QAAQoC,OAAOC,QAAQ,OAAQ,KAAKjB,MAAM,KAG3D,GAAIe,MAAMzB,OAAS,GAAKyB,MAAMzB,OAAS,EAAI,CAC1C,MAAM,IAAInC,UAAU,+CAAiDZ,KAAKqC,QAAU,0DAIrF,GAAImC,MAAMzB,SAAW,EAAG,CACvByB,MAAMG,QAAQ,KAKfH,MAAM,GAAKxE,KAAK4E,mBAAmBJ,MAAM,IACzCA,MAAM,GAAKxE,KAAK6E,iBAAiBL,MAAM,IAGvCxE,KAAK8E,yBAAyBN,OAG9BxE,KAAK+E,YAAY,UAAcP,MAAM,GAAI,GACzCxE,KAAK+E,YAAY,UAAcP,MAAM,GAAI,GACzCxE,KAAK+E,YAAY,QAAcP,MAAM,GAAI,GACzCxE,KAAK+E,YAAY,OAAcP,MAAM,IAAK,GAC1CxE,KAAK+E,YAAY,SAAcP,MAAM,IAAK,GAC1CxE,KAAK+E,YAAY,aAAcP,MAAM,GAAI,GAGzC,GAAIxE,KAAKmD,WAAW,GAAK,CACxBnD,KAAKmD,WAAW,GAAK,IAcvBe,YAAYrD,UAAUkE,YAAc,SAAUC,KAAMC,KAAMC,iBAAkBC,UAE3E,MAAMC,IAAMpF,KAAKgF,MAGjB,GAAIC,OAAS,IAAM,CAClB,IAAKnD,IAAIgB,EAAI,EAAGA,EAAIsC,IAAIrC,OAAQD,IAAM,CACrCsC,IAAItC,GAAK,EAEV,OAID,MAAMW,MAAQwB,KAAKxB,MAAM,KACzB,GAAIA,MAAMV,OAAS,EAAI,CACtB,IAAKjB,IAAIgB,EAAI,EAAGA,EAAIW,MAAMV,OAAQD,IAAM,CACvC9C,KAAK+E,YAAYC,KAAMvB,MAAMX,GAAIoC,iBAAkB,YAI9C,GAAID,KAAKI,QAAQ,QAAU,GAAKJ,KAAKI,QAAQ,QAAU,EAAI,CACjE,GAAIF,SAAU,MAAM,IAAIG,MAAM,0DAE9BtF,KAAKuF,wBAAwBN,KAAMD,KAAME,uBAGnC,GAAID,KAAKI,QAAQ,QAAU,EAAI,CACrC,GAAIF,SAAU,MAAM,IAAIG,MAAM,0DAE9BtF,KAAKwF,YAAYP,KAAMD,KAAME,uBAGvB,GAAID,KAAKI,QAAQ,QAAU,EAAI,CACrC,GAAIF,SAAU,MAAM,IAAIG,MAAM,0DAE9BtF,KAAKyF,eAAeR,KAAMD,KAAME,sBAE1B,CACNlF,KAAK0F,aAAaT,KAAMD,KAAME,oBAWhChB,YAAYrD,UAAUiE,yBAA2B,SAAUN,OAC1D,MAAMmB,YAAc,cACpB,IAAI7D,IAAIgB,EAAI,EAAGA,EAAI0B,MAAMzB,OAAQD,IAAK,CACrC,GAAI6C,YAAYC,KAAKpB,MAAM1B,IAAM,CAChC,MAAM,IAAIlC,UAAU,oCAAsCkC,EAAI,KAAO0B,MAAM1B,GAAK,qCAanFoB,YAAYrD,UAAU6E,aAAe,SAAUT,KAAMD,KAAME,kBAC1DpD,IAAIgB,EAAKc,SAASqB,KAAM,IAAMC,iBAE9B,GAAIpC,EAAI,GAAKA,GAAK9C,KAAKgF,MAAMjC,OAAS,CACrC,MAAM,IAAInC,UAAU,gBAAkBoE,KAAO,yBAA2BC,KAAO,KAGhFjF,KAAKgF,MAAMlC,GAAK,GAWjBoB,YAAYrD,UAAU0E,wBAA0B,SAAUN,KAAMD,KAAME,kBACrEpD,IAAI+D,QAAUZ,KAAKa,MAAM,wBAEzB,GAAID,UAAY,KAAO,MAAM,IAAIjF,UAAU,4DAA8DqE,KAAO,KAEhHnD,GAAI,CAAC,CAAEiE,MAAOC,MAAOC,OAASJ,QAC9BE,MAAQnC,SAASmC,MAAO,IAAMb,iBAC9Bc,MAAQpC,SAASoC,MAAO,IAAMd,iBAC9Be,MAAQrC,SAASqC,MAAO,IAAMf,iBAE9B,GAAI/C,MAAM4D,OAAS,MAAM,IAAInF,UAAU,wDACvC,GAAIuB,MAAM6D,OAAS,MAAM,IAAIpF,UAAU,wDACvC,GAAIuB,MAAM8D,OAAS,MAAM,IAAIrF,UAAU,sDAEvC,GAAIqF,QAAU,EAAI,MAAM,IAAIrF,UAAU,kDACtC,GAAIqF,MAAQjG,KAAKgF,MAAMjC,OAAS,MAAM,IAAInC,UAAU,kFAAkFZ,KAAKgF,MAAMjC,OAAO,KAExJ,GAAIgD,MAAQ,GAAKC,OAAShG,KAAKgF,MAAMjC,OAAS,MAAM,IAAInC,UAAU,qCAAuCqE,KAAO,KAChH,GAAIc,MAAQC,MAAQ,MAAM,IAAIpF,UAAU,qDAAuDqE,KAAO,KAEtG,IAAKnD,IAAIgB,EAAIiD,MAAOjD,GAAKkD,MAAOlD,GAAKmD,MAAO,CAC3CjG,KAAKgF,MAAOlC,EAAIoC,kBAAqB,IAYvChB,YAAYrD,UAAU2E,YAAc,SAAUP,KAAMD,KAAME,kBACzD,MAAMzB,MAAQwB,KAAKxB,MAAM,KAEzB,GAAIA,MAAMV,SAAW,EAAI,CACxB,MAAM,IAAInC,UAAU,8CAAgDqE,KAAO,KAG5E,MAAMc,MAAQnC,SAASH,MAAM,GAAI,IAAMyB,iBACtCc,MAAQpC,SAASH,MAAM,GAAI,IAAMyB,iBAElC,GAAI/C,MAAM4D,OAAS,CAClB,MAAM,IAAInF,UAAU,6DACd,GAAIuB,MAAM6D,OAAS,CACzB,MAAM,IAAIpF,UAAU,wDAIrB,GAAImF,MAAQ,GAAKC,OAAShG,KAAKgF,MAAMjC,OAAS,CAC7C,MAAM,IAAInC,UAAU,qCAAuCqE,KAAO,KAInE,GAAIc,MAAQC,MAAQ,CACnB,MAAM,IAAIpF,UAAU,qDAAuDqE,KAAO,KAGnF,IAAKnD,IAAIgB,EAAIiD,MAAOjD,GAAKkD,MAAOlD,IAAM,CACrC9C,KAAKgF,MAAOlC,EAAIoC,kBAAqB,IAYvChB,YAAYrD,UAAU4E,eAAiB,SAAUR,KAAMD,KAAME,kBAE5D,MAAMzB,MAAQwB,KAAKxB,MAAM,KAEzB,GAAIA,MAAMV,SAAW,EAAI,CACxB,MAAM,IAAInC,UAAU,iDAAmDqE,KAAO,KAG/EnD,IAAIoE,MAAQ,EACZ,GAAIzC,MAAM,KAAO,IAAM,CACtByC,MAAQtC,SAASH,MAAM,GAAI,IAG5B,MAAMwC,MAAQrC,SAASH,MAAM,GAAI,IAEjC,GAAItB,MAAM8D,OAAS,MAAM,IAAIrF,UAAU,sDACvC,GAAIqF,QAAU,EAAI,MAAM,IAAIrF,UAAU,kDACtC,GAAIqF,MAAQjG,KAAKgF,MAAMjC,OAAS,MAAM,IAAInC,UAAU,kFAAkFZ,KAAKgF,MAAMjC,OAAO,KAExJ,IAAKjB,IAAIgB,EAAIoD,MAAOpD,EAAI9C,KAAKgF,MAAMjC,OAAQD,GAAImD,MAAQ,CACtDjG,KAAKgF,MAAOlC,EAAIoC,kBAAqB,IAavChB,YAAYrD,UAAUgE,iBAAmB,SAAUI,MAClD,OAAOA,KACLP,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAWpBR,YAAYrD,UAAU+D,mBAAqB,SAAUK,MACpD,OAAOA,KACLP,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,OAsDpB,MAAMyB,SAAWC,KAAKC,IAAI,EAAG,GAAK,GAAK,EAWvC,SAAStG,KAAMsC,QAASiE,QAASC,MAChCzE,IAAIhC,KAAOE,KAGX,KAAMA,gBAAgBD,MAAQ,CAC7B,OAAO,IAAIA,KAAKsC,QAASiE,QAASC,MAInCzG,KAAKuC,QAAU,IAAI6B,YAAY7B,SAG/B,UAAWiE,UAAY,WAAa,CACnCC,KAAOD,QACPA,aAAe,EAIhBtG,KAAKsG,QAAUtG,KAAKwG,eAAeF,SAKnC,GAAIC,YAAc,EAAI,CACrBvG,KAAKyG,GAAKF,KACVvG,KAAK0G,WAGN,OAAO1G,KAWRD,KAAKc,UAAU2F,eAAiB,SAAUF,SAGzC,GAAIA,eAAiB,EAAG,CACvBA,QAAU,GAIXA,QAAQK,OAAUL,QAAQK,cAAgB,EAAK,MAAQL,QAAQK,OAC/DL,QAAQM,QAAWN,QAAQM,eAAiB,EAAKC,SAAWP,QAAQM,QACpEN,QAAQQ,MAASR,QAAQQ,aAAe,EAAK,MAAQR,QAAQQ,MAC7DR,QAAQS,KAAO,MAGf,GAAIT,QAAQU,QAAU,CACrBV,QAAQU,QAAU,IAAIzG,SAAS+F,QAAQU,QAASV,QAAQ9F,UAEzD,GAAI8F,QAAQW,OAAS,CACpBX,QAAQW,OAAS,IAAI1G,SAAS+F,QAAQW,OAAQX,QAAQ9F,UAGvD,OAAO8F,SASRvG,KAAKc,UAAUqG,KAAO,SAAUC,MAC/BA,KAAO,IAAI5G,SAAS4G,KAAMnH,KAAKsG,QAAQ9F,UACvCsB,IAAIoF,KAAOlH,KAAKoH,MAAMD,MACtB,OAAOD,KAAOA,KAAK1F,UAAY,MAShCzB,KAAKc,UAAUwG,QAAU,WACxBvF,IAAIwF,OAAStH,KAAKuH,SAASvH,KAAKwH,aAChC1F,IAAIuF,SAAWrH,KAAKsG,QAAQK,QAAU3G,KAAKyG,UAAY,EACvD,OAAOa,SAAW,MAAQD,SAS3BtH,KAAKc,UAAU4G,SAAW,WACzB,OAAOzH,KAAKwH,YAAcxH,KAAKwH,YAAYhG,UAAY,MAUxDzB,KAAKc,UAAUuG,MAAQ,SAAUD,MAGhC,GAAInH,KAAKsG,QAAQU,SAAWG,MAAQA,KAAK3E,QAAQ,MAAQxC,KAAKsG,QAAQU,QAAQxE,QAAQ,MAAQ,CAC7F2E,KAAO,IAAI5G,SAASP,KAAKsG,QAAQU,QAAShH,KAAKsG,QAAQ9F,UAIxDsB,IAAI4F,QAAU,IAAInH,SAAS4G,KAAMnH,KAAKsG,QAAQ9F,UAAU4B,UAAUpC,KAAKqC,SAEvE,GAAKqF,UAAY,MACf1H,KAAKsG,QAAQM,SAAW,GACxB5G,KAAKsG,QAAY,MACjBtG,KAAKsG,QAAQW,QAAUS,QAAQlF,QAAQ,OAASxC,KAAKsG,QAAQW,OAAOzE,QAAQ,MAAS,CACtF,OAAO,SACD,CAEN,OAAOkF,UAYT3H,KAAKc,UAAU0G,SAAW,SAAUJ,MACnCA,KAAO,IAAI5G,SAAS4G,KAAMnH,KAAKsG,QAAQ9F,UACvCsB,IAAIoF,KAAOlH,KAAKoH,MAAMD,MACtB,GAAID,KAAO,CACV,OAAQA,KAAK1E,QAAQ,MAAQ2E,KAAK3E,QAAQ,UACpC,CACN,OAAO,OAQTzC,KAAKc,UAAU8G,KAAO,WACrB3H,KAAKsG,QAAQS,KAAO,KAEpB,GAAI/G,KAAK4H,eAAiB,CACzBC,aAAc7H,KAAK4H,kBAUrB7H,KAAKc,UAAUiH,MAAQ,WACtB,OAAQ9H,KAAKsG,QAAQK,OAAS,QAAU3G,KAAKsG,QAAQS,MAStDhH,KAAKc,UAAUkH,OAAS,WACvB,QAAS/H,KAAKsG,QAAQK,OAAS,SAAW3G,KAAKsG,QAAQS,MAUxDhH,KAAKc,UAAU6F,SAAW,SAAUH,MAEnCzE,IAAIhC,KAAOE,KAGVgI,OAAShI,KAAKuH,SAASzH,KAAK0H,aAI5BS,UAAYnI,KAAKqG,UAAYA,SAG9B,GAAI6B,OAASC,UAAY,CACxBD,OAASC,UAIV,GAAI1B,KAAM,CACTzG,KAAK2G,GAAKF,KAIX,GAAMyB,SAAW,KAAO,CACvBlI,KAAK8H,eAAiBM,WAAW,WAGhC,GAAIF,SAAWC,UAAY,CAE1B,IAAMnI,KAAKwG,QAAQK,OAAS,CAC3B7G,KAAKwG,QAAQM,UAEb,GAAI9G,KAAKwG,QAAQQ,MAAO,CACvB,IACChH,KAAK2G,GAAG3G,MACP,MAAOqI,UAGH,CACNrI,KAAK2G,GAAG3G,OAIVA,KAAK0H,YAAc,IAAIjH,cAAc,EAAGT,KAAKwG,QAAQ9F,UAItDV,KAAK4G,YAEHsB,QAGJ,OAAOhI,MAIR,OAAOD"}
|
package/dist/croner.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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,fromLocal){if(this.timezone&&!fromLocal){date=convertTZ(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(){let 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){let 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,true)};CronDate.prototype.increment=function(pattern,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;let self=this,origTime=self.getTime(),findNext=function(target,pattern,offset,override){let startPos=override===void 0?self[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){if(pattern[target][i]){self[target]=i-offset;return true}}return false},resetPrevious=function(){while(doing>=0){findNext(toDo[doing][0],pattern,toDo[doing][2],0);doing--}};let toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]],doing=0;while(doing<5){if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious()}if(this.years>=4e3){return null}doing++}while(!pattern.daysOfWeek[this.getDate(true).getDay()]){this.days+=1;doing=2;resetPrevious()}if(origTime!=self.getTime()){self.apply();return self.increment(pattern,true)}else{return this}};CronDate.prototype.getDate=function(internal){let targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{let offset=convertTZ(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(s){let b=s.split(/\D/);if(b.length<6){return NaN}let year=parseInt(b[0],10),month=parseInt(b[1],10),day=parseInt(b[2],10),hour=parseInt(b[3],10),minute=parseInt(b[4],10),second=parseInt(b[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{return new Date(year,month-1,day,hour,minute,second)}};function CronPattern(pattern){this.pattern=pattern;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.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.")}let 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")}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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){let i,split,arr=this[type];if(conf==="*"){for(i=0;i<arr.length;i++){arr[i]=1}return}split=conf.split(",");if(split.length>1){for(i=0;i<split.length;i++){this.partToArray(type,split[i],valueIndexOffset)}}else if(conf.indexOf("-")!==-1){this.handleRange(conf,type,valueIndexOffset)}else if(conf.indexOf("/")!==-1){this.handleStepping(conf,type,valueIndexOffset)}else{this.handleNumber(conf,type,valueIndexOffset)}};CronPattern.prototype.throwAtIllegalCharacters=function(parts){let 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){let 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.handleRange=function(conf,type,valueIndexOffset){let split=conf.split("-");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal range: '"+conf+"'")}let 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+valueIndexOffset]=1}};CronPattern.prototype.handleStepping=function(conf,type,valueIndexOffset){let split=conf.split("/");if(split.length!==2){throw new TypeError("CronPattern: Syntax error, illegal stepping: '"+conf+"'")}if(split[0]!=="*"){throw new TypeError("CronPattern: Syntax error, left part of / needs to be * : '"+conf+"'")}let 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=0;i<this[type].length;i+=steps){this[type][i+valueIndexOffset]=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){let self=this;if(!(this instanceof Cron)){return new Cron(pattern,options,func)}self.pattern=new CronPattern(pattern);if(typeof options==="function"){func=options;options=void 0}this.options=this.processOptions(options);if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.processOptions=function(options){if(options===void 0){options={}}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};Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);let next=this._next(prev);return next?next.getDate():null};Cron.prototype.running=function(){let msLeft=this.msToNext(this.previousrun);let 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._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=new CronDate(this.options.startAt,this.options.timezone)}let nextRun=new CronDate(prev,this.options.timezone).increment(this.pattern);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}};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);let 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){let self=this,waitMs=this.msToNext(self.previousrun),_maxDelay=self.maxDelay||maxDelay;if(waitMs>_maxDelay){waitMs=_maxDelay}if(func){self.fn=func}if(waitMs!==null){self.currentTimeout=setTimeout(function(){if(waitMs!==_maxDelay){if(!self.options.paused){self.options.maxRuns--;if(self.options.catch){try{self.fn(self)}catch(_e){}}else{self.fn(self)}}self.previousrun=new CronDate(void 0,self.options.timezone)}self.schedule()},waitMs)}return this};export{Cron,Cron as default};
|
|
1
|
+
function convertTZ(date,tzString){return new Date(date.toLocaleString("en-US",{timeZone:tzString}))}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,fromLocal){if(this.timezone&&!fromLocal){date=convertTZ(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(){let 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){let 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,true)};CronDate.prototype.increment=function(pattern,rerun){if(!rerun){this.seconds+=1}this.milliseconds=0;let self=this,origTime=self.getTime(),findNext=function(target,pattern,offset,override){let startPos=override===void 0?self[target]+offset:0+offset;for(let i=startPos;i<pattern[target].length;i++){if(pattern[target][i]){self[target]=i-offset;return true}}return false},resetPrevious=function(){while(doing>=0){findNext(toDo[doing][0],pattern,toDo[doing][2],0);doing--}};let toDo=[["seconds","minutes",0],["minutes","hours",0],["hours","days",0],["days","months",-1],["months","years",0]],doing=0;while(doing<5){if(!findNext(toDo[doing][0],pattern,toDo[doing][2])){this[toDo[doing][1]]++;resetPrevious()}if(this.years>=4e3){return null}doing++}while(!pattern.daysOfWeek[this.getDate(true).getDay()]){this.days+=1;doing=2;resetPrevious()}if(origTime!=self.getTime()){self.apply();return self.increment(pattern,true)}else{return this}};CronDate.prototype.getDate=function(internal){let targetDate=new Date(this.years,this.months,this.days,this.hours,this.minutes,this.seconds,this.milliseconds);if(internal||!this.timezone){return targetDate}else{let offset=convertTZ(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(s){let b=s.split(/\D/);if(b.length<6){return NaN}let year=parseInt(b[0],10),month=parseInt(b[1],10),day=parseInt(b[2],10),hour=parseInt(b[3],10),minute=parseInt(b[4],10),second=parseInt(b[5],10);if(isNaN(year)||isNaN(month)||isNaN(day)||isNaN(hour)||isNaN(minute)||isNaN(second)){return NaN}else{return new Date(year,month-1,day,hour,minute,second)}};function CronPattern(pattern){this.pattern=pattern;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.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.")}let 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")}parts[4]=this.replaceAlphaMonths(parts[4]);parts[5]=this.replaceAlphaDays(parts[5]);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){let 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){let 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)+valueIndexOffset;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+valueIndexOffset]=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+valueIndexOffset]=1}};CronPattern.prototype.handleStepping=function(conf,type,valueIndexOffset){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+valueIndexOffset]=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){let self=this;if(!(this instanceof Cron)){return new Cron(pattern,options,func)}self.pattern=new CronPattern(pattern);if(typeof options==="function"){func=options;options=void 0}this.options=this.processOptions(options);if(func!==void 0){this.fn=func;this.schedule()}return this}Cron.prototype.processOptions=function(options){if(options===void 0){options={}}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};Cron.prototype.next=function(prev){prev=new CronDate(prev,this.options.timezone);let next=this._next(prev);return next?next.getDate():null};Cron.prototype.running=function(){let msLeft=this.msToNext(this.previousrun);let 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._next=function(prev){if(this.options.startAt&&prev&&prev.getTime(true)<this.options.startAt.getTime(true)){prev=new CronDate(this.options.startAt,this.options.timezone)}let nextRun=new CronDate(prev,this.options.timezone).increment(this.pattern);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}};Cron.prototype.msToNext=function(prev){prev=new CronDate(prev,this.options.timezone);let 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){let self=this,waitMs=this.msToNext(self.previousrun),_maxDelay=self.maxDelay||maxDelay;if(waitMs>_maxDelay){waitMs=_maxDelay}if(func){self.fn=func}if(waitMs!==null){self.currentTimeout=setTimeout(function(){if(waitMs!==_maxDelay){if(!self.options.paused){self.options.maxRuns--;if(self.options.catch){try{self.fn(self)}catch(_e){}}else{self.fn(self)}}self.previousrun=new CronDate(void 0,self.options.timezone)}self.schedule()},waitMs)}return this};export{Cron,Cron as default};
|
package/dist/croner.min.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dist/croner.mjs"],"names":["convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","this","fromDate","fromString","fromCronDate","TypeError","prototype","fromLocal","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","let","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","self","origTime","getTime","findNext","target","offset","override","startPos","i","length","resetPrevious","doing","toDo","daysOfWeek","getDay","internal","targetDate","s","b","split","NaN","year","parseInt","month","day","hour","minute","second","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","replaceAlphaMonths","replaceAlphaDays","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","arr","indexOf","handleRange","handleStepping","handleNumber","reValidCron","test","lower","upper","steps","maxDelay","Math","pow","Cron","options","func","processOptions","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","running","msLeft","msToNext","previousrun","previous","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","_maxDelay","setTimeout","_e"],"mappings":"AAgBA,SAASA,UAAUC,KAAMC,UACxB,OAAO,IAAIC,KAAKF,KAAKG,eAAe,QAAS,CAACC,SAAUH,YAUzD,SAASI,SAAUL,KAAMM,UAExBC,KAAKD,SAAWA,SAEhB,GAAIN,MAAQA,gBAAgBE,KAAM,CACjCK,KAAKC,SAASR,WACR,GAAIA,YAAc,EAAG,CAC3BO,KAAKC,SAAS,IAAIN,WACZ,GAAIF,aAAeA,OAAS,SAAU,CAC5CO,KAAKE,WAAWT,WACV,GAAIA,gBAAgBK,SAAU,CACpCE,KAAKG,aAAaV,UACZ,CACN,MAAM,IAAIW,UAAU,kCAAoCX,KAAO,kDAWjEK,SAASO,UAAUJ,SAAW,SAAUR,KAAMa,WAE7C,GAAIN,KAAKD,WAAaO,UAAW,CAChCb,KAAOD,UAAUC,KAAMO,KAAKD,UAG7BC,KAAKO,aAAed,KAAKe,kBACzBR,KAAKS,QAAUhB,KAAKiB,aACpBV,KAAKW,QAAUlB,KAAKmB,aACpBZ,KAAKa,MAAQpB,KAAKqB,WAClBd,KAAKe,KAAOtB,KAAKuB,UACjBhB,KAAKiB,OAAUxB,KAAKyB,WACpBlB,KAAKmB,MAAQ1B,KAAK2B,eASnBtB,SAASO,UAAUF,aAAe,SAAUV,MAC3CO,KAAKD,SAAWN,KAAKM,SACrBC,KAAKO,aAAed,KAAKc,aACzBP,KAAKS,QAAUhB,KAAKgB,QACpBT,KAAKW,QAAUlB,KAAKkB,QACpBX,KAAKa,MAAQpB,KAAKoB,MAClBb,KAAKe,KAAOtB,KAAKsB,KACjBf,KAAKiB,OAAUxB,KAAKwB,OACpBjB,KAAKmB,MAAQ1B,KAAK0B,OASnBrB,SAASO,UAAUgB,MAAQ,WAC1BC,IAAIC,QAAU,IAAI5B,KAAKK,KAAKmB,MAAOnB,KAAKiB,OAAQjB,KAAKe,KAAMf,KAAKa,MAAOb,KAAKW,QAASX,KAAKS,QAAST,KAAKO,cAExGP,KAAKO,aAAegB,QAAQf,kBAC5BR,KAAKS,QAAUc,QAAQb,aACvBV,KAAKW,QAAUY,QAAQX,aACvBZ,KAAKa,MAAQU,QAAQT,WACrBd,KAAKe,KAAOQ,QAAQP,UACpBhB,KAAKiB,OAAUM,QAAQL,WACvBlB,KAAKmB,MAAQI,QAAQH,eAStBtB,SAASO,UAAUH,WAAa,SAAUsB,KAEzCF,IAAIG,WAAazB,KAAK0B,cAAcF,KAGpC,GAAIG,MAAMF,YAAc,CACvB,MAAM,IAAIrB,UAAU,6EAGrBJ,KAAKC,SAASwB,WAAY,OAW3B3B,SAASO,UAAUuB,UAAY,SAAUC,QAASC,OAEjD,IAAKA,MAAO,CACX9B,KAAKS,SAAW,EAGjBT,KAAKO,aAAe,EAEpBe,IAAIS,KAAO/B,KACVgC,SAAWD,KAAKE,UAchBC,SAAW,SAAUC,OAAQN,QAASO,OAAQC,UAE7Cf,IAAIgB,SAAYD,gBAAkB,EAAKN,KAAKI,QAAUC,OAAS,EAAIA,OAEnE,IAAKd,IAAIiB,EAAID,SAAUC,EAAIV,QAAQM,QAAQK,OAAQD,IAAM,CAExD,GAAIV,QAAQM,QAAQI,GAAK,CACxBR,KAAKI,QAAUI,EAAEH,OACjB,OAAO,MAGT,OAAO,OAIRK,cAAgB,WAKf,MAAMC,OAAS,EAAG,CAOjBR,SAASS,KAAKD,OAAO,GAAIb,QAASc,KAAKD,OAAO,GAAI,GAGlDA,UAWHpB,IAAIqB,KAAO,CACT,CAAC,UAAW,UAAW,GACvB,CAAC,UAAW,QAAS,GACrB,CAAC,QAAS,OAAQ,GAClB,CAAC,OAAQ,UAAW,GACpB,CAAC,SAAU,QAAS,IAErBD,MAAQ,EAIT,MAAMA,MAAQ,EAAG,CAOhB,IAAIR,SAASS,KAAKD,OAAO,GAAIb,QAASc,KAAKD,OAAO,IAAK,CACtD1C,KAAK2C,KAAKD,OAAO,MACjBD,gBAID,GAAIzC,KAAKmB,OAAS,IAAM,CACvB,OAAO,KAIRuB,QAKD,OAAQb,QAAQe,WAAW5C,KAAKgB,QAAQ,MAAM6B,UAAW,CACxD7C,KAAKe,MAAQ,EACb2B,MAAQ,EACRD,gBAID,GAAIT,UAAYD,KAAKE,UAAW,CAC/BF,KAAKV,QACL,OAAOU,KAAKH,UAAUC,QAAS,UACzB,CACN,OAAO7B,OAYTF,SAASO,UAAUW,QAAU,SAAU8B,UACtCxB,IAAIyB,WAAa,IAAIpD,KAAKK,KAAKmB,MAAOnB,KAAKiB,OAAQjB,KAAKe,KAAMf,KAAKa,MAAOb,KAAKW,QAASX,KAAKS,QAAST,KAAKO,cAC3G,GAAIuC,WAAa9C,KAAKD,SAAU,CAC/B,OAAOgD,eACD,CACNzB,IAAIc,OAAS5C,UAAUuD,WAAY/C,KAAKD,UAAUkC,UAAUc,WAAWd,UACvE,OAAO,IAAItC,KAAKoD,WAAWd,UAAUG,UAWvCtC,SAASO,UAAU4B,QAAU,SAAUa,UACtC,OAAO9C,KAAKgB,QAAQ8B,UAAUb,WAW/BnC,SAASO,UAAUqB,cAAgB,SAAUsB,GAC5C1B,IAAI2B,EAAID,EAAEE,MAAM,MAGhB,GAAID,EAAET,OAAS,EAAG,CACjB,OAAOW,IAGR7B,IACC8B,KAAOC,SAASJ,EAAE,GAAI,IACtBK,MAAQD,SAASJ,EAAE,GAAI,IACvBM,IAAMF,SAASJ,EAAE,GAAI,IACrBO,KAAOH,SAASJ,EAAE,GAAI,IACtBQ,OAASJ,SAASJ,EAAE,GAAI,IACxBS,OAASL,SAASJ,EAAE,GAAI,IAGzB,GAAItB,MAAMyB,OAASzB,MAAM2B,QAAU3B,MAAM4B,MAAQ5B,MAAM6B,OAAS7B,MAAM8B,SAAW9B,MAAM+B,QAAU,CAChG,OAAOP,QACD,CACN,OAAO,IAAIxD,KAAKyD,KAAME,MAAM,EAAGC,IAAKC,KAAMC,OAAQC,UAuBpD,SAASC,YAAa9B,SAErB7B,KAAK6B,QAAYA,QAEjB7B,KAAKS,QAAiBmD,MAAM,IAAIC,KAAK,GACrC7D,KAAKW,QAAiBiD,MAAM,IAAIC,KAAK,GACrC7D,KAAKa,MAAiB+C,MAAM,IAAIC,KAAK,GACrC7D,KAAKe,KAAiB6C,MAAM,IAAIC,KAAK,GACrC7D,KAAKiB,OAAiB2C,MAAM,IAAIC,KAAK,GACrC7D,KAAK4C,WAAiBgB,MAAM,GAAGC,KAAK,GAEpC7D,KAAK8D,QAQNH,YAAYtD,UAAUyD,MAAQ,WAG7B,YAAa9D,KAAK6B,UAAY,UAAY7B,KAAK6B,QAAQkC,cAAgBC,QAAU,CAChF,MAAM,IAAI5D,UAAU,kDAIrBkB,IAAI2C,MAAQjE,KAAK6B,QAAQqC,OAAOC,QAAQ,OAAQ,KAAKjB,MAAM,KAG3D,GAAIe,MAAMzB,OAAS,GAAKyB,MAAMzB,OAAS,EAAI,CAC1C,MAAM,IAAIpC,UAAU,+CAAiDJ,KAAK6B,QAAU,0DAIrF,GAAIoC,MAAMzB,SAAW,EAAG,CACvByB,MAAMG,QAAQ,KAKfH,MAAM,GAAKjE,KAAKqE,mBAAmBJ,MAAM,IACzCA,MAAM,GAAKjE,KAAKsE,iBAAiBL,MAAM,IAGvCjE,KAAKuE,yBAAyBN,OAG9BjE,KAAKwE,YAAY,UAAcP,MAAM,GAAI,GACzCjE,KAAKwE,YAAY,UAAcP,MAAM,GAAI,GACzCjE,KAAKwE,YAAY,QAAcP,MAAM,GAAI,GACzCjE,KAAKwE,YAAY,OAAcP,MAAM,IAAK,GAC1CjE,KAAKwE,YAAY,SAAcP,MAAM,IAAK,GAC1CjE,KAAKwE,YAAY,aAAcP,MAAM,GAAI,GAGzC,GAAIjE,KAAK4C,WAAW,GAAK,CACxB5C,KAAK4C,WAAW,GAAK,IAavBe,YAAYtD,UAAUmE,YAAc,SAAUC,KAAMC,KAAMC,kBAEzDrD,IAAIiB,EACHW,MACA0B,IAAM5E,KAAKyE,MAGZ,GAAIC,OAAS,IAAM,CAClB,IAAKnC,EAAI,EAAGA,EAAIqC,IAAIpC,OAAQD,IAAM,CACjCqC,IAAIrC,GAAK,EAEV,OAIDW,MAAQwB,KAAKxB,MAAM,KACnB,GAAIA,MAAMV,OAAS,EAAI,CACtB,IAAKD,EAAI,EAAGA,EAAIW,MAAMV,OAAQD,IAAM,CACnCvC,KAAKwE,YAAYC,KAAMvB,MAAMX,GAAIoC,wBAI5B,GAAID,KAAKG,QAAQ,QAAU,EAAI,CACrC7E,KAAK8E,YAAYJ,KAAMD,KAAME,uBAGvB,GAAID,KAAKG,QAAQ,QAAU,EAAI,CACrC7E,KAAK+E,eAAeL,KAAMD,KAAME,sBAG1B,CACN3E,KAAKgF,aAAaN,KAAMD,KAAME,oBAWhChB,YAAYtD,UAAUkE,yBAA2B,SAAUN,OAC1D3C,IAAI2D,YAAc,cAClB,IAAI3D,IAAIiB,EAAI,EAAGA,EAAI0B,MAAMzB,OAAQD,IAAK,CACrC,GAAI0C,YAAYC,KAAKjB,MAAM1B,IAAM,CAChC,MAAM,IAAInC,UAAU,oCAAsCmC,EAAI,KAAO0B,MAAM1B,GAAK,qCAanFoB,YAAYtD,UAAU2E,aAAe,SAAUN,KAAMD,KAAME,kBAC1DrD,IAAIiB,EAAKc,SAASqB,KAAM,IAAMC,iBAE9B,GAAIpC,EAAI,GAAKA,GAAKvC,KAAKyE,MAAMjC,OAAS,CACrC,MAAM,IAAIpC,UAAU,gBAAkBqE,KAAO,yBAA2BC,KAAO,KAGhF1E,KAAKyE,MAAMlC,GAAK,GAYjBoB,YAAYtD,UAAUyE,YAAc,SAAUJ,KAAMD,KAAME,kBACzDrD,IAAI4B,MAAQwB,KAAKxB,MAAM,KAEvB,GAAIA,MAAMV,SAAW,EAAI,CACxB,MAAM,IAAIpC,UAAU,8CAAgDsE,KAAO,KAG5EpD,IAAI6D,MAAQ9B,SAASH,MAAM,GAAI,IAAMyB,iBACpCS,MAAQ/B,SAASH,MAAM,GAAI,IAAMyB,iBAElC,GAAIhD,MAAMwD,OAAS,CAClB,MAAM,IAAI/E,UAAU,6DACd,GAAIuB,MAAMyD,OAAS,CACzB,MAAM,IAAIhF,UAAU,wDAIrB,GAAI+E,MAAQ,GAAKC,OAASpF,KAAKyE,MAAMjC,OAAS,CAC7C,MAAM,IAAIpC,UAAU,qCAAuCsE,KAAO,KAInE,GAAIS,MAAQC,MAAQ,CACnB,MAAM,IAAIhF,UAAU,qDAAuDsE,KAAO,KAGnF,IAAKpD,IAAIiB,EAAI4C,MAAO5C,GAAK6C,MAAO7C,IAAM,CACrCvC,KAAKyE,MAAOlC,EAAIoC,kBAAqB,IAYvChB,YAAYtD,UAAU0E,eAAiB,SAAUL,KAAMD,KAAME,kBAE5DrD,IAAI4B,MAAQwB,KAAKxB,MAAM,KAEvB,GAAIA,MAAMV,SAAW,EAAI,CACxB,MAAM,IAAIpC,UAAU,iDAAmDsE,KAAO,KAG/E,GAAIxB,MAAM,KAAO,IAAM,CACtB,MAAM,IAAI9C,UAAU,8DAAgEsE,KAAO,KAG5FpD,IAAI+D,MAAQhC,SAASH,MAAM,GAAI,IAE/B,GAAIvB,MAAM0D,OAAS,MAAM,IAAIjF,UAAU,sDACvC,GAAIiF,QAAU,EAAI,MAAM,IAAIjF,UAAU,kDACtC,GAAIiF,MAAQrF,KAAKyE,MAAMjC,OAAS,MAAM,IAAIpC,UAAU,kFAAkFJ,KAAKyE,MAAMjC,OAAO,KAExJ,IAAKlB,IAAIiB,EAAI,EAAGA,EAAIvC,KAAKyE,MAAMjC,OAAQD,GAAI8C,MAAQ,CAClDrF,KAAKyE,MAAOlC,EAAIoC,kBAAqB,IAavChB,YAAYtD,UAAUiE,iBAAmB,SAAUI,MAClD,OAAOA,KACLP,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MAWpBR,YAAYtD,UAAUgE,mBAAqB,SAAUK,MACpD,OAAOA,KACLP,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,MACjBA,QAAQ,QAAS,OAsDpB,MAAMmB,SAAWC,KAAKC,IAAI,EAAG,GAAK,GAAK,EAWvC,SAASC,KAAM5D,QAAS6D,QAASC,MAChCrE,IAAIS,KAAO/B,KAGX,KAAMA,gBAAgByF,MAAQ,CAC7B,OAAO,IAAIA,KAAK5D,QAAS6D,QAASC,MAInC5D,KAAKF,QAAU,IAAI8B,YAAY9B,SAG/B,UAAW6D,UAAY,WAAa,CACnCC,KAAOD,QACPA,aAAe,EAIhB1F,KAAK0F,QAAU1F,KAAK4F,eAAeF,SAKnC,GAAIC,YAAc,EAAI,CACrB3F,KAAK6F,GAAKF,KACV3F,KAAK8F,WAGN,OAAO9F,KAWRyF,KAAKpF,UAAUuF,eAAiB,SAAUF,SAGzC,GAAIA,eAAiB,EAAG,CACvBA,QAAU,GAIXA,QAAQK,OAAUL,QAAQK,cAAgB,EAAK,MAAQL,QAAQK,OAC/DL,QAAQM,QAAWN,QAAQM,eAAiB,EAAKC,SAAWP,QAAQM,QACpEN,QAAQQ,MAASR,QAAQQ,aAAe,EAAK,MAAQR,QAAQQ,MAC7DR,QAAQS,KAAO,MAGf,GAAIT,QAAQU,QAAU,CACrBV,QAAQU,QAAU,IAAItG,SAAS4F,QAAQU,QAASV,QAAQ3F,UAEzD,GAAI2F,QAAQW,OAAS,CACpBX,QAAQW,OAAS,IAAIvG,SAAS4F,QAAQW,OAAQX,QAAQ3F,UAGvD,OAAO2F,SASRD,KAAKpF,UAAUiG,KAAO,SAAUC,MAC/BA,KAAO,IAAIzG,SAASyG,KAAMvG,KAAK0F,QAAQ3F,UACvCuB,IAAIgF,KAAOtG,KAAKwG,MAAMD,MACtB,OAAOD,KAAOA,KAAKtF,UAAY,MAShCyE,KAAKpF,UAAUoG,QAAU,WACxBnF,IAAIoF,OAAS1G,KAAK2G,SAAS3G,KAAK4G,aAChCtF,IAAImF,SAAWzG,KAAK0F,QAAQK,QAAU/F,KAAK6F,UAAY,EACvD,OAAOa,SAAW,MAAQD,SAS3BhB,KAAKpF,UAAUwG,SAAW,WACzB,OAAO7G,KAAK4G,YAAc5G,KAAK4G,YAAY5F,UAAY,MAUxDyE,KAAKpF,UAAUmG,MAAQ,SAAUD,MAGhC,GAAIvG,KAAK0F,QAAQU,SAAWG,MAAQA,KAAKtE,QAAQ,MAAQjC,KAAK0F,QAAQU,QAAQnE,QAAQ,MAAQ,CAC7FsE,KAAO,IAAIzG,SAASE,KAAK0F,QAAQU,QAASpG,KAAK0F,QAAQ3F,UAIxDuB,IAAIwF,QAAU,IAAIhH,SAASyG,KAAMvG,KAAK0F,QAAQ3F,UAAU6B,UAAU5B,KAAK6B,SAEvE,GAAKiF,UAAY,MACf9G,KAAK0F,QAAQM,SAAW,GACxBhG,KAAK0F,QAAY,MACjB1F,KAAK0F,QAAQW,QAAUS,QAAQ7E,QAAQ,OAASjC,KAAK0F,QAAQW,OAAOpE,QAAQ,MAAS,CACtF,OAAO,SACD,CAEN,OAAO6E,UAYTrB,KAAKpF,UAAUsG,SAAW,SAAUJ,MACnCA,KAAO,IAAIzG,SAASyG,KAAMvG,KAAK0F,QAAQ3F,UACvCuB,IAAIgF,KAAOtG,KAAKwG,MAAMD,MACtB,GAAID,KAAO,CACV,OAAQA,KAAKrE,QAAQ,MAAQsE,KAAKtE,QAAQ,UACpC,CACN,OAAO,OAQTwD,KAAKpF,UAAU0G,KAAO,WACrB/G,KAAK0F,QAAQS,KAAO,KAEpB,GAAInG,KAAKgH,eAAiB,CACzBC,aAAcjH,KAAKgH,kBAUrBvB,KAAKpF,UAAU6G,MAAQ,WACtB,OAAQlH,KAAK0F,QAAQK,OAAS,QAAU/F,KAAK0F,QAAQS,MAStDV,KAAKpF,UAAU8G,OAAS,WACvB,QAASnH,KAAK0F,QAAQK,OAAS,SAAW/F,KAAK0F,QAAQS,MAUxDV,KAAKpF,UAAUyF,SAAW,SAAUH,MAEnCrE,IAAIS,KAAO/B,KAGVoH,OAASpH,KAAK2G,SAAS5E,KAAK6E,aAI5BS,UAAYtF,KAAKuD,UAAYA,SAG9B,GAAI8B,OAASC,UAAY,CACxBD,OAASC,UAIV,GAAI1B,KAAM,CACT5D,KAAK8D,GAAKF,KAIX,GAAMyB,SAAW,KAAO,CACvBrF,KAAKiF,eAAiBM,WAAW,WAGhC,GAAIF,SAAWC,UAAY,CAE1B,IAAMtF,KAAK2D,QAAQK,OAAS,CAC3BhE,KAAK2D,QAAQM,UAEb,GAAIjE,KAAK2D,QAAQQ,MAAO,CACvB,IACCnE,KAAK8D,GAAG9D,MACP,MAAOwF,UAGH,CACNxF,KAAK8D,GAAG9D,OAIVA,KAAK6E,YAAc,IAAI9G,cAAc,EAAGiC,KAAK2D,QAAQ3F,UAItDgC,KAAK+D,YAEHsB,QAGJ,OAAOpH,aAICyF,KAAMA"}
|
|
1
|
+
{"version":3,"sources":["dist/croner.mjs"],"names":["convertTZ","date","tzString","Date","toLocaleString","timeZone","CronDate","timezone","this","fromDate","fromString","fromCronDate","TypeError","prototype","fromLocal","milliseconds","getMilliseconds","seconds","getSeconds","minutes","getMinutes","hours","getHours","days","getDate","months","getMonth","years","getFullYear","apply","let","newDate","str","parsedDate","parseISOLocal","isNaN","increment","pattern","rerun","self","origTime","getTime","findNext","target","offset","override","startPos","i","length","resetPrevious","doing","toDo","daysOfWeek","getDay","internal","targetDate","s","b","split","NaN","year","parseInt","month","day","hour","minute","second","CronPattern","Array","fill","parse","constructor","String","parts","trim","replace","unshift","replaceAlphaMonths","replaceAlphaDays","throwAtIllegalCharacters","partToArray","type","conf","valueIndexOffset","recursed","arr","indexOf","Error","handleRangeWithStepping","handleRange","handleStepping","handleNumber","reValidCron","test","matches","match","lower","upper","steps","start","maxDelay","Math","pow","Cron","options","func","processOptions","fn","schedule","paused","maxRuns","Infinity","catch","kill","startAt","stopAt","next","prev","_next","running","msLeft","msToNext","previousrun","previous","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","_maxDelay","setTimeout","_e"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "croner",
|
|
3
|
-
"version": "4.0.
|
|
4
|
-
"description": "Trigger functions in javascript using Cron syntax. No
|
|
3
|
+
"version": "4.0.76",
|
|
4
|
+
"description": "Trigger functions in javascript using Cron syntax. No dependencies.",
|
|
5
5
|
"author": "Hexagon <github.com/hexagon>",
|
|
6
6
|
"homepage": "https://hexagon.github.io/croner",
|
|
7
7
|
"contributors": [
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
"dist/*",
|
|
22
22
|
"src/*",
|
|
23
23
|
"types/*",
|
|
24
|
-
"dist-legacy/*",
|
|
25
24
|
"SECURITY.md",
|
|
26
25
|
"croner.png"
|
|
27
26
|
],
|
package/src/pattern.js
CHANGED
|
@@ -86,37 +86,45 @@ CronPattern.prototype.parse = function () {
|
|
|
86
86
|
* @param {CronPatternPart} type - Seconds/minutes etc
|
|
87
87
|
* @param {string} conf - Current pattern part - *, 0-1 etc
|
|
88
88
|
* @param {CronIndexOffset} valueIndexOffset
|
|
89
|
+
* @param {boolean} [recursed] - Is this a recursed call
|
|
89
90
|
*/
|
|
90
|
-
CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset) {
|
|
91
|
+
CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset, recursed) {
|
|
91
92
|
|
|
92
|
-
|
|
93
|
-
split,
|
|
94
|
-
arr = this[type];
|
|
93
|
+
const arr = this[type];
|
|
95
94
|
|
|
96
95
|
// First off, handle wildcard
|
|
97
96
|
if( conf === "*" ) {
|
|
98
|
-
for( i = 0; i < arr.length; i++ ) {
|
|
97
|
+
for( let i = 0; i < arr.length; i++ ) {
|
|
99
98
|
arr[i] = 1;
|
|
100
99
|
}
|
|
101
100
|
return;
|
|
102
101
|
}
|
|
103
102
|
|
|
104
103
|
// Handle separated entries (,) by recursion
|
|
105
|
-
split = conf.split(",");
|
|
104
|
+
const split = conf.split(",");
|
|
106
105
|
if( split.length > 1 ) {
|
|
107
|
-
for( i = 0; i < split.length; i++ ) {
|
|
108
|
-
this.partToArray(type, split[i], valueIndexOffset);
|
|
106
|
+
for( let i = 0; i < split.length; i++ ) {
|
|
107
|
+
this.partToArray(type, split[i], valueIndexOffset, true);
|
|
109
108
|
}
|
|
110
109
|
|
|
111
|
-
// Handle range (-)
|
|
110
|
+
// Handle range with stepping (x-y/z)
|
|
111
|
+
} else if( conf.indexOf("-") !== -1 && conf.indexOf("/") !== -1 ) {
|
|
112
|
+
if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
|
|
113
|
+
|
|
114
|
+
this.handleRangeWithStepping(conf, type, valueIndexOffset);
|
|
115
|
+
|
|
116
|
+
// Handle range
|
|
112
117
|
} else if( conf.indexOf("-") !== -1 ) {
|
|
118
|
+
if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
|
|
119
|
+
|
|
113
120
|
this.handleRange(conf, type, valueIndexOffset);
|
|
114
121
|
|
|
115
|
-
// Handle stepping
|
|
122
|
+
// Handle stepping
|
|
116
123
|
} else if( conf.indexOf("/") !== -1 ) {
|
|
124
|
+
if (recursed) throw new Error("CronPattern: Range with stepping cannot coexist with ,");
|
|
125
|
+
|
|
117
126
|
this.handleStepping(conf, type, valueIndexOffset);
|
|
118
127
|
|
|
119
|
-
// Handle pure number
|
|
120
128
|
} else {
|
|
121
129
|
this.handleNumber(conf, type, valueIndexOffset);
|
|
122
130
|
}
|
|
@@ -130,7 +138,7 @@ CronPattern.prototype.partToArray = function (type, conf, valueIndexOffset) {
|
|
|
130
138
|
* @param {string[]} parts - Each part split as strings
|
|
131
139
|
*/
|
|
132
140
|
CronPattern.prototype.throwAtIllegalCharacters = function (parts) {
|
|
133
|
-
|
|
141
|
+
const reValidCron = /[^/*0-9,-]+/;
|
|
134
142
|
for(let i = 0; i < parts.length; i++) {
|
|
135
143
|
if( reValidCron.test(parts[i]) ) {
|
|
136
144
|
throw new TypeError("CronPattern: configuration entry " + i + " (" + parts[i] + ") contains illegal characters.");
|
|
@@ -156,6 +164,38 @@ CronPattern.prototype.handleNumber = function (conf, type, valueIndexOffset) {
|
|
|
156
164
|
this[type][i] = 1;
|
|
157
165
|
};
|
|
158
166
|
|
|
167
|
+
/**
|
|
168
|
+
* Take care of ranges with stepping (e.g. 3-23/5)
|
|
169
|
+
* @private
|
|
170
|
+
*
|
|
171
|
+
* @param {string} conf - Current part, expected to be a string like 3-23/5
|
|
172
|
+
* @param {string} type - One of "seconds", "minutes" etc
|
|
173
|
+
* @param {number} valueIndexOffset - -1 for day of month, and month, as they start at 1. 0 for seconds, hours, minutes
|
|
174
|
+
*/
|
|
175
|
+
CronPattern.prototype.handleRangeWithStepping = function (conf, type, valueIndexOffset) {
|
|
176
|
+
let matches = conf.match(/^(\d+)-(\d+)\/(\d+)$/);
|
|
177
|
+
|
|
178
|
+
if( matches === null ) throw new TypeError("CronPattern: Syntax error, illegal range with stepping: '" + conf + "'");
|
|
179
|
+
|
|
180
|
+
let [, lower, upper, steps] = matches;
|
|
181
|
+
lower = parseInt(lower, 10) + valueIndexOffset;
|
|
182
|
+
upper = parseInt(upper, 10) + valueIndexOffset;
|
|
183
|
+
steps = parseInt(steps, 10) + valueIndexOffset;
|
|
184
|
+
|
|
185
|
+
if( isNaN(lower) ) throw new TypeError("CronPattern: Syntax error, illegal lower range (NaN)");
|
|
186
|
+
if( isNaN(upper) ) throw new TypeError("CronPattern: Syntax error, illegal upper range (NaN)");
|
|
187
|
+
if( isNaN(steps) ) throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");
|
|
188
|
+
|
|
189
|
+
if( steps === 0 ) throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");
|
|
190
|
+
if( steps > this[type].length ) throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");
|
|
191
|
+
|
|
192
|
+
if( lower < 0 || upper >= this[type].length ) throw new TypeError("CronPattern: Value out of range: '" + conf + "'");
|
|
193
|
+
if( lower > upper ) throw new TypeError("CronPattern: From value is larger than to value: '" + conf + "'");
|
|
194
|
+
|
|
195
|
+
for (let i = lower; i <= upper; i += steps) {
|
|
196
|
+
this[type][(i + valueIndexOffset)] = 1;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
159
199
|
|
|
160
200
|
/**
|
|
161
201
|
* Take care of ranges (e.g. 1-20)
|
|
@@ -166,13 +206,13 @@ CronPattern.prototype.handleNumber = function (conf, type, valueIndexOffset) {
|
|
|
166
206
|
* @param {number} valueIndexOffset - -1 for day of month, and month, as they start at 1. 0 for seconds, hours, minutes
|
|
167
207
|
*/
|
|
168
208
|
CronPattern.prototype.handleRange = function (conf, type, valueIndexOffset) {
|
|
169
|
-
|
|
209
|
+
const split = conf.split("-");
|
|
170
210
|
|
|
171
211
|
if( split.length !== 2 ) {
|
|
172
212
|
throw new TypeError("CronPattern: Syntax error, illegal range: '" + conf + "'");
|
|
173
213
|
}
|
|
174
214
|
|
|
175
|
-
|
|
215
|
+
const lower = parseInt(split[0], 10) + valueIndexOffset,
|
|
176
216
|
upper = parseInt(split[1], 10) + valueIndexOffset;
|
|
177
217
|
|
|
178
218
|
if( isNaN(lower) ) {
|
|
@@ -206,23 +246,24 @@ CronPattern.prototype.handleRange = function (conf, type, valueIndexOffset) {
|
|
|
206
246
|
*/
|
|
207
247
|
CronPattern.prototype.handleStepping = function (conf, type, valueIndexOffset) {
|
|
208
248
|
|
|
209
|
-
|
|
249
|
+
const split = conf.split("/");
|
|
210
250
|
|
|
211
251
|
if( split.length !== 2 ) {
|
|
212
252
|
throw new TypeError("CronPattern: Syntax error, illegal stepping: '" + conf + "'");
|
|
213
253
|
}
|
|
214
254
|
|
|
255
|
+
let start = 0;
|
|
215
256
|
if( split[0] !== "*" ) {
|
|
216
|
-
|
|
257
|
+
start = parseInt(split[0], 10);
|
|
217
258
|
}
|
|
218
259
|
|
|
219
|
-
|
|
260
|
+
const steps = parseInt(split[1], 10);
|
|
220
261
|
|
|
221
262
|
if( isNaN(steps) ) throw new TypeError("CronPattern: Syntax error, illegal stepping: (NaN)");
|
|
222
263
|
if( steps === 0 ) throw new TypeError("CronPattern: Syntax error, illegal stepping: 0");
|
|
223
264
|
if( steps > this[type].length ) throw new TypeError("CronPattern: Syntax error, steps cannot be greater than maximum value of part ("+this[type].length+")");
|
|
224
265
|
|
|
225
|
-
for( let i =
|
|
266
|
+
for( let i = start; i < this[type].length; i+= steps ) {
|
|
226
267
|
this[type][(i + valueIndexOffset)] = 1;
|
|
227
268
|
}
|
|
228
269
|
};
|
package/types/pattern.d.ts
CHANGED