croner 4.0.72 → 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 +26 -9
- package/croner.png +0 -0
- package/dist/croner.cjs +82 -30
- 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 +4 -6
- package/src/croner.js +18 -7
- package/src/date.js +5 -5
- package/src/pattern.js +59 -18
- package/types/{src/croner.d.ts → croner.d.ts} +13 -9
- package/types/{src/croner.single.d.ts → croner.single.d.ts} +0 -0
- package/types/{src/date.d.ts → date.d.ts} +4 -4
- package/types/{src/pattern.d.ts → pattern.d.ts} +1 -0
- package/types/{src/timezone.d.ts → timezone.d.ts} +0 -0
- package/mod.ts +0 -3
- package/types/mod.d.ts +0 -3
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
|
|
@@ -42,6 +42,8 @@ More [examples](#examples)...
|
|
|
42
42
|
|
|
43
43
|
```npm install croner --save```
|
|
44
44
|
|
|
45
|
+
JavaScript
|
|
46
|
+
|
|
45
47
|
```javascript
|
|
46
48
|
// ESM Import ...
|
|
47
49
|
import Cron from "croner";
|
|
@@ -50,12 +52,25 @@ import Cron from "croner";
|
|
|
50
52
|
const Cron = require("croner");
|
|
51
53
|
```
|
|
52
54
|
|
|
55
|
+
TypeScript
|
|
56
|
+
|
|
57
|
+
*Note that only default export is available in Node.js TypeScript, as the commonjs module is used internally.*
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
import Cron from "croner";
|
|
61
|
+
|
|
62
|
+
const scheduler : Cron = new Cron("* * * * * *", () => {
|
|
63
|
+
console.log("This will run every second.");
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
|
|
53
68
|
### Deno
|
|
54
69
|
|
|
55
70
|
JavaScript
|
|
56
71
|
|
|
57
72
|
```javascript
|
|
58
|
-
import Cron from "https://cdn.jsdelivr.net/
|
|
73
|
+
import Cron from "https://cdn.jsdelivr.net/gh/hexagon/croner@4/src/croner.js";
|
|
59
74
|
|
|
60
75
|
Cron("* * * * * *", () => {
|
|
61
76
|
console.log("This will run every second.");
|
|
@@ -65,9 +80,9 @@ Cron("* * * * * *", () => {
|
|
|
65
80
|
TypeScript
|
|
66
81
|
|
|
67
82
|
```typescript
|
|
68
|
-
import { Cron } from "https://cdn.jsdelivr.net/
|
|
83
|
+
import { Cron } from "https://cdn.jsdelivr.net/gh/hexagon/croner@4/src/croner.js";
|
|
69
84
|
|
|
70
|
-
|
|
85
|
+
const _scheduler : Cron = new Cron("* * * * * *", () => {
|
|
71
86
|
console.log("This will run every second.");
|
|
72
87
|
});
|
|
73
88
|
```
|
|
@@ -120,7 +135,7 @@ job.schedule(() => {});
|
|
|
120
135
|
// States
|
|
121
136
|
let nextRun = job.next( /*optional*/ previousRun ); // Get a Date object representing next run
|
|
122
137
|
let prevRun = job.previous( );
|
|
123
|
-
let msToNext = job.msToNext( /*optional*/
|
|
138
|
+
let msToNext = job.msToNext( /*optional*/ previousRun ); // Milliseconds left to next execution
|
|
124
139
|
let isRunning = job.running();
|
|
125
140
|
|
|
126
141
|
// Control scheduled execution
|
|
@@ -135,6 +150,7 @@ job.stop();
|
|
|
135
150
|
| Key | Default value | Data type | Remarks |
|
|
136
151
|
|--------------|----------------|----------------|---------------------------------------|
|
|
137
152
|
| maxRuns | Infinite | Number | |
|
|
153
|
+
| catch | false | Boolean | Catch and ignore unhandled errors in triggered function |
|
|
138
154
|
| timezone | undefined | String | Timezone in Europe/Stockholm format |
|
|
139
155
|
| startAt | undefined | String | ISO 8601 formatted datetime (2021-10-17T23:43:00)<br>in local or specified timezone |
|
|
140
156
|
| stopAt | undefined | String | ISO 8601 formatted datetime (2021-10-17T23:43:00)<br>in local or specified timezone |
|
|
@@ -170,9 +186,10 @@ job.stop();
|
|
|
170
186
|
#### Expressions
|
|
171
187
|
```javascript
|
|
172
188
|
// Run a function according to pattern
|
|
173
|
-
Cron('
|
|
174
|
-
console.log('This will run
|
|
175
|
-
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.');
|
|
176
193
|
});
|
|
177
194
|
```
|
|
178
195
|
|
package/croner.png
CHANGED
|
Binary file
|
package/dist/croner.cjs
CHANGED
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
* Sets internals using a Date
|
|
53
53
|
* @private
|
|
54
54
|
*
|
|
55
|
-
* @param {
|
|
55
|
+
* @param {Date} date - Input date
|
|
56
56
|
* @param {boolean} fromLocal - Target already in local time
|
|
57
57
|
*/
|
|
58
58
|
CronDate.prototype.fromDate = function (date, fromLocal) {
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
* Reset internal parameters (seconds, minutes, hours) that may have exceeded their ranges
|
|
92
92
|
* @private
|
|
93
93
|
*
|
|
94
|
-
* @param {
|
|
94
|
+
* @param {Date} date - Input date
|
|
95
95
|
*/
|
|
96
96
|
CronDate.prototype.apply = function () {
|
|
97
97
|
let newDate = new Date(this.years, this.months, this.days, this.hours, this.minutes, this.seconds, this.milliseconds);
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
* Sets internals by parsing a string
|
|
110
110
|
* @private
|
|
111
111
|
*
|
|
112
|
-
* @param {
|
|
112
|
+
* @param {Date} date - Input date
|
|
113
113
|
*/
|
|
114
114
|
CronDate.prototype.fromString = function (str) {
|
|
115
115
|
|
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
* @public
|
|
251
251
|
*
|
|
252
252
|
* @param {boolean} internal - If this is an internal call
|
|
253
|
-
* @returns {
|
|
253
|
+
* @returns {Date}
|
|
254
254
|
*/
|
|
255
255
|
CronDate.prototype.getDate = function (internal) {
|
|
256
256
|
let targetDate = new Date(this.years, this.months, this.days, this.hours, this.minutes, this.seconds, this.milliseconds);
|
|
@@ -267,7 +267,7 @@
|
|
|
267
267
|
* @public
|
|
268
268
|
*
|
|
269
269
|
* @param {boolean} internal - If this is an internal call
|
|
270
|
-
* @returns {
|
|
270
|
+
* @returns {Date}
|
|
271
271
|
*/
|
|
272
272
|
CronDate.prototype.getTime = function (internal) {
|
|
273
273
|
return this.getDate(internal).getTime();
|
|
@@ -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
|
};
|
|
@@ -612,9 +653,10 @@
|
|
|
612
653
|
* @typedef {Object} CronOptions - Cron scheduler options
|
|
613
654
|
* @property {boolean} [paused] - Job is paused
|
|
614
655
|
* @property {boolean} [kill] - Job is about to be killed or killed
|
|
656
|
+
* @property {boolean} [catch] - Continue exection even if a unhandled error is thrown by triggered function
|
|
615
657
|
* @property {number} [maxRuns] - Maximum nuber of executions
|
|
616
|
-
* @property {string |
|
|
617
|
-
* @property {string |
|
|
658
|
+
* @property {string | Date} [startAt] - When to start running
|
|
659
|
+
* @property {string | Date} [stopAt] - When to stop running
|
|
618
660
|
* @property {string} [timezone] - Time zone in Europe/Stockholm format
|
|
619
661
|
*/
|
|
620
662
|
|
|
@@ -688,6 +730,7 @@
|
|
|
688
730
|
// Keep options, or set defaults
|
|
689
731
|
options.paused = (options.paused === void 0) ? false : options.paused;
|
|
690
732
|
options.maxRuns = (options.maxRuns === void 0) ? Infinity : options.maxRuns;
|
|
733
|
+
options.catch = (options.catch === void 0) ? false : options.catch;
|
|
691
734
|
options.kill = false;
|
|
692
735
|
|
|
693
736
|
// startAt is set, validate it
|
|
@@ -704,8 +747,8 @@
|
|
|
704
747
|
/**
|
|
705
748
|
* Find next runtime, based on supplied date. Strips milliseconds.
|
|
706
749
|
*
|
|
707
|
-
* @param {
|
|
708
|
-
* @returns {
|
|
750
|
+
* @param {Date} [prev] - Input pattern
|
|
751
|
+
* @returns {Date | null} - Next run time
|
|
709
752
|
*/
|
|
710
753
|
Cron.prototype.next = function (prev) {
|
|
711
754
|
prev = new CronDate(prev, this.options.timezone);
|
|
@@ -729,7 +772,7 @@
|
|
|
729
772
|
* Return previous run time
|
|
730
773
|
* @public
|
|
731
774
|
*
|
|
732
|
-
* @returns {
|
|
775
|
+
* @returns {Date | null} - Previous run time
|
|
733
776
|
*/
|
|
734
777
|
Cron.prototype.previous = function () {
|
|
735
778
|
return this.previousrun ? this.previousrun.getDate() : null;
|
|
@@ -768,7 +811,7 @@
|
|
|
768
811
|
* Returns number of milliseconds to next run
|
|
769
812
|
* @public
|
|
770
813
|
*
|
|
771
|
-
* @param {
|
|
814
|
+
* @param {Date} [prev] - Starting date, defaults to now
|
|
772
815
|
* @returns {number | null}
|
|
773
816
|
*/
|
|
774
817
|
Cron.prototype.msToNext = function (prev) {
|
|
@@ -850,7 +893,16 @@
|
|
|
850
893
|
|
|
851
894
|
if ( !self.options.paused ) {
|
|
852
895
|
self.options.maxRuns--;
|
|
853
|
-
|
|
896
|
+
|
|
897
|
+
if (self.options.catch) {
|
|
898
|
+
try {
|
|
899
|
+
self.fn(self);
|
|
900
|
+
} catch (_e) {
|
|
901
|
+
// Throw it away
|
|
902
|
+
}
|
|
903
|
+
} else {
|
|
904
|
+
self.fn(self);
|
|
905
|
+
}
|
|
854
906
|
}
|
|
855
907
|
|
|
856
908
|
self.previousrun = new CronDate(void 0, self.options.timezone);
|
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.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--;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","kill","startAt","stopAt","next","prev","_next","running","msLeft","msToNext","previousrun","previous","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","_maxDelay","setTimeout"],"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":"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"}
|
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.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--;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","kill","startAt","stopAt","next","prev","_next","running","msLeft","msToNext","previousrun","previous","nextRun","stop","currentTimeout","clearTimeout","pause","resume","waitMs","_maxDelay","setTimeout"],"mappings":"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"}
|
|
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,10 +21,8 @@
|
|
|
21
21
|
"dist/*",
|
|
22
22
|
"src/*",
|
|
23
23
|
"types/*",
|
|
24
|
-
"dist-legacy/*",
|
|
25
24
|
"SECURITY.md",
|
|
26
|
-
"croner.png"
|
|
27
|
-
"mod.ts"
|
|
25
|
+
"croner.png"
|
|
28
26
|
],
|
|
29
27
|
"keywords": [
|
|
30
28
|
"cron",
|
|
@@ -53,7 +51,7 @@
|
|
|
53
51
|
"main": "./dist/croner.cjs",
|
|
54
52
|
"browser": "./dist/croner.min.js",
|
|
55
53
|
"module": "./src/croner.js",
|
|
56
|
-
"types": "types/croner.d.ts",
|
|
54
|
+
"types": "types/croner.single.d.ts",
|
|
57
55
|
"exports": {
|
|
58
56
|
".": {
|
|
59
57
|
"import": "./src/croner.js",
|
package/src/croner.js
CHANGED
|
@@ -34,9 +34,10 @@ import { CronPattern } from "./pattern.js";
|
|
|
34
34
|
* @typedef {Object} CronOptions - Cron scheduler options
|
|
35
35
|
* @property {boolean} [paused] - Job is paused
|
|
36
36
|
* @property {boolean} [kill] - Job is about to be killed or killed
|
|
37
|
+
* @property {boolean} [catch] - Continue exection even if a unhandled error is thrown by triggered function
|
|
37
38
|
* @property {number} [maxRuns] - Maximum nuber of executions
|
|
38
|
-
* @property {string |
|
|
39
|
-
* @property {string |
|
|
39
|
+
* @property {string | Date} [startAt] - When to start running
|
|
40
|
+
* @property {string | Date} [stopAt] - When to stop running
|
|
40
41
|
* @property {string} [timezone] - Time zone in Europe/Stockholm format
|
|
41
42
|
*/
|
|
42
43
|
|
|
@@ -110,6 +111,7 @@ Cron.prototype.processOptions = function (options) {
|
|
|
110
111
|
// Keep options, or set defaults
|
|
111
112
|
options.paused = (options.paused === void 0) ? false : options.paused;
|
|
112
113
|
options.maxRuns = (options.maxRuns === void 0) ? Infinity : options.maxRuns;
|
|
114
|
+
options.catch = (options.catch === void 0) ? false : options.catch;
|
|
113
115
|
options.kill = false;
|
|
114
116
|
|
|
115
117
|
// startAt is set, validate it
|
|
@@ -126,8 +128,8 @@ Cron.prototype.processOptions = function (options) {
|
|
|
126
128
|
/**
|
|
127
129
|
* Find next runtime, based on supplied date. Strips milliseconds.
|
|
128
130
|
*
|
|
129
|
-
* @param {
|
|
130
|
-
* @returns {
|
|
131
|
+
* @param {Date} [prev] - Input pattern
|
|
132
|
+
* @returns {Date | null} - Next run time
|
|
131
133
|
*/
|
|
132
134
|
Cron.prototype.next = function (prev) {
|
|
133
135
|
prev = new CronDate(prev, this.options.timezone);
|
|
@@ -151,7 +153,7 @@ Cron.prototype.running = function () {
|
|
|
151
153
|
* Return previous run time
|
|
152
154
|
* @public
|
|
153
155
|
*
|
|
154
|
-
* @returns {
|
|
156
|
+
* @returns {Date | null} - Previous run time
|
|
155
157
|
*/
|
|
156
158
|
Cron.prototype.previous = function () {
|
|
157
159
|
return this.previousrun ? this.previousrun.getDate() : null;
|
|
@@ -190,7 +192,7 @@ Cron.prototype._next = function (prev) {
|
|
|
190
192
|
* Returns number of milliseconds to next run
|
|
191
193
|
* @public
|
|
192
194
|
*
|
|
193
|
-
* @param {
|
|
195
|
+
* @param {Date} [prev] - Starting date, defaults to now
|
|
194
196
|
* @returns {number | null}
|
|
195
197
|
*/
|
|
196
198
|
Cron.prototype.msToNext = function (prev) {
|
|
@@ -272,7 +274,16 @@ Cron.prototype.schedule = function (func) {
|
|
|
272
274
|
|
|
273
275
|
if ( !self.options.paused ) {
|
|
274
276
|
self.options.maxRuns--;
|
|
275
|
-
|
|
277
|
+
|
|
278
|
+
if (self.options.catch) {
|
|
279
|
+
try {
|
|
280
|
+
self.fn(self);
|
|
281
|
+
} catch (_e) {
|
|
282
|
+
// Throw it away
|
|
283
|
+
}
|
|
284
|
+
} else {
|
|
285
|
+
self.fn(self);
|
|
286
|
+
}
|
|
276
287
|
}
|
|
277
288
|
|
|
278
289
|
self.previousrun = new CronDate(void 0, self.options.timezone);
|
package/src/date.js
CHANGED
|
@@ -28,7 +28,7 @@ function CronDate (date, timezone) {
|
|
|
28
28
|
* Sets internals using a Date
|
|
29
29
|
* @private
|
|
30
30
|
*
|
|
31
|
-
* @param {
|
|
31
|
+
* @param {Date} date - Input date
|
|
32
32
|
* @param {boolean} fromLocal - Target already in local time
|
|
33
33
|
*/
|
|
34
34
|
CronDate.prototype.fromDate = function (date, fromLocal) {
|
|
@@ -67,7 +67,7 @@ CronDate.prototype.fromCronDate = function (date) {
|
|
|
67
67
|
* Reset internal parameters (seconds, minutes, hours) that may have exceeded their ranges
|
|
68
68
|
* @private
|
|
69
69
|
*
|
|
70
|
-
* @param {
|
|
70
|
+
* @param {Date} date - Input date
|
|
71
71
|
*/
|
|
72
72
|
CronDate.prototype.apply = function () {
|
|
73
73
|
let newDate = new Date(this.years, this.months, this.days, this.hours, this.minutes, this.seconds, this.milliseconds);
|
|
@@ -85,7 +85,7 @@ CronDate.prototype.apply = function () {
|
|
|
85
85
|
* Sets internals by parsing a string
|
|
86
86
|
* @private
|
|
87
87
|
*
|
|
88
|
-
* @param {
|
|
88
|
+
* @param {Date} date - Input date
|
|
89
89
|
*/
|
|
90
90
|
CronDate.prototype.fromString = function (str) {
|
|
91
91
|
|
|
@@ -226,7 +226,7 @@ CronDate.prototype.increment = function (pattern, rerun) {
|
|
|
226
226
|
* @public
|
|
227
227
|
*
|
|
228
228
|
* @param {boolean} internal - If this is an internal call
|
|
229
|
-
* @returns {
|
|
229
|
+
* @returns {Date}
|
|
230
230
|
*/
|
|
231
231
|
CronDate.prototype.getDate = function (internal) {
|
|
232
232
|
let targetDate = new Date(this.years, this.months, this.days, this.hours, this.minutes, this.seconds, this.milliseconds);
|
|
@@ -243,7 +243,7 @@ CronDate.prototype.getDate = function (internal) {
|
|
|
243
243
|
* @public
|
|
244
244
|
*
|
|
245
245
|
* @param {boolean} internal - If this is an internal call
|
|
246
|
-
* @returns {
|
|
246
|
+
* @returns {Date}
|
|
247
247
|
*/
|
|
248
248
|
CronDate.prototype.getTime = function (internal) {
|
|
249
249
|
return this.getDate(internal).getTime();
|
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
|
};
|
|
@@ -11,6 +11,10 @@ export type CronOptions = {
|
|
|
11
11
|
* - Job is about to be killed or killed
|
|
12
12
|
*/
|
|
13
13
|
kill?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* - Continue exection even if a unhandled error is thrown by triggered function
|
|
16
|
+
*/
|
|
17
|
+
catch?: boolean;
|
|
14
18
|
/**
|
|
15
19
|
* - Maximum nuber of executions
|
|
16
20
|
*/
|
|
@@ -18,11 +22,11 @@ export type CronOptions = {
|
|
|
18
22
|
/**
|
|
19
23
|
* - When to start running
|
|
20
24
|
*/
|
|
21
|
-
startAt?: string |
|
|
25
|
+
startAt?: string | Date;
|
|
22
26
|
/**
|
|
23
27
|
* - When to stop running
|
|
24
28
|
*/
|
|
25
|
-
stopAt?: string |
|
|
29
|
+
stopAt?: string | Date;
|
|
26
30
|
/**
|
|
27
31
|
* - Time zone in Europe/Stockholm format
|
|
28
32
|
*/
|
|
@@ -58,10 +62,10 @@ export class Cron {
|
|
|
58
62
|
/**
|
|
59
63
|
* Find next runtime, based on supplied date. Strips milliseconds.
|
|
60
64
|
*
|
|
61
|
-
* @param {
|
|
62
|
-
* @returns {
|
|
65
|
+
* @param {Date} [prev] - Input pattern
|
|
66
|
+
* @returns {Date | null} - Next run time
|
|
63
67
|
*/
|
|
64
|
-
next(prev?:
|
|
68
|
+
next(prev?: Date): Date | null;
|
|
65
69
|
/**
|
|
66
70
|
* Is running?
|
|
67
71
|
* @public
|
|
@@ -73,18 +77,18 @@ export class Cron {
|
|
|
73
77
|
* Return previous run time
|
|
74
78
|
* @public
|
|
75
79
|
*
|
|
76
|
-
* @returns {
|
|
80
|
+
* @returns {Date | null} - Previous run time
|
|
77
81
|
*/
|
|
78
|
-
public previous():
|
|
82
|
+
public previous(): Date | null;
|
|
79
83
|
private _next;
|
|
80
84
|
/**
|
|
81
85
|
* Returns number of milliseconds to next run
|
|
82
86
|
* @public
|
|
83
87
|
*
|
|
84
|
-
* @param {
|
|
88
|
+
* @param {Date} [prev] - Starting date, defaults to now
|
|
85
89
|
* @returns {number | null}
|
|
86
90
|
*/
|
|
87
|
-
public msToNext(prev?:
|
|
91
|
+
public msToNext(prev?: Date): number | null;
|
|
88
92
|
/**
|
|
89
93
|
* Stop execution
|
|
90
94
|
* @public
|
|
File without changes
|
|
@@ -41,16 +41,16 @@ export class CronDate {
|
|
|
41
41
|
* @public
|
|
42
42
|
*
|
|
43
43
|
* @param {boolean} internal - If this is an internal call
|
|
44
|
-
* @returns {
|
|
44
|
+
* @returns {Date}
|
|
45
45
|
*/
|
|
46
|
-
public getDate(internal: boolean):
|
|
46
|
+
public getDate(internal: boolean): Date;
|
|
47
47
|
/**
|
|
48
48
|
* Convert current state back to a javascript Date() and return UTC milliseconds
|
|
49
49
|
* @public
|
|
50
50
|
*
|
|
51
51
|
* @param {boolean} internal - If this is an internal call
|
|
52
|
-
* @returns {
|
|
52
|
+
* @returns {Date}
|
|
53
53
|
*/
|
|
54
|
-
public getTime(internal: boolean):
|
|
54
|
+
public getTime(internal: boolean): Date;
|
|
55
55
|
private parseISOLocal;
|
|
56
56
|
}
|
|
File without changes
|
package/mod.ts
DELETED
package/types/mod.d.ts
DELETED