@pristine-ts/local-scheduling 4.0.2
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/LICENSE +201 -0
- package/dist/lib/cjs/builders/builders.js +18 -0
- package/dist/lib/cjs/builders/builders.js.map +1 -0
- package/dist/lib/cjs/builders/cron-expression.builder.js +159 -0
- package/dist/lib/cjs/builders/cron-expression.builder.js.map +1 -0
- package/dist/lib/cjs/enums/day-of-week.enum.js +19 -0
- package/dist/lib/cjs/enums/day-of-week.enum.js.map +1 -0
- package/dist/lib/cjs/enums/enums.js +19 -0
- package/dist/lib/cjs/enums/enums.js.map +1 -0
- package/dist/lib/cjs/enums/month.enum.js +23 -0
- package/dist/lib/cjs/enums/month.enum.js.map +1 -0
- package/dist/lib/cjs/errors/errors.js +20 -0
- package/dist/lib/cjs/errors/errors.js.map +1 -0
- package/dist/lib/cjs/errors/invalid-cron-expression.error.js +30 -0
- package/dist/lib/cjs/errors/invalid-cron-expression.error.js.map +1 -0
- package/dist/lib/cjs/errors/schedule-already-exists.error.js +25 -0
- package/dist/lib/cjs/errors/schedule-already-exists.error.js.map +1 -0
- package/dist/lib/cjs/errors/schedule-not-found.error.js +22 -0
- package/dist/lib/cjs/errors/schedule-not-found.error.js.map +1 -0
- package/dist/lib/cjs/interfaces/interfaces.js +22 -0
- package/dist/lib/cjs/interfaces/interfaces.js.map +1 -0
- package/dist/lib/cjs/interfaces/local-scheduler.interface.js +3 -0
- package/dist/lib/cjs/interfaces/local-scheduler.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/schedulable.interface.js +3 -0
- package/dist/lib/cjs/interfaces/schedulable.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/schedule-descriptor.interface.js +3 -0
- package/dist/lib/cjs/interfaces/schedule-descriptor.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/schedule-options.interface.js +3 -0
- package/dist/lib/cjs/interfaces/schedule-options.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/schedule-state.interface.js +3 -0
- package/dist/lib/cjs/interfaces/schedule-state.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/schedule.interface.js +3 -0
- package/dist/lib/cjs/interfaces/schedule.interface.js.map +1 -0
- package/dist/lib/cjs/local-scheduling.module.js +85 -0
- package/dist/lib/cjs/local-scheduling.module.js.map +1 -0
- package/dist/lib/cjs/local-scheduling.module.keyname.js +5 -0
- package/dist/lib/cjs/local-scheduling.module.keyname.js.map +1 -0
- package/dist/lib/cjs/managers/local-scheduler.manager.js +361 -0
- package/dist/lib/cjs/managers/local-scheduler.manager.js.map +1 -0
- package/dist/lib/cjs/managers/managers.js +18 -0
- package/dist/lib/cjs/managers/managers.js.map +1 -0
- package/dist/lib/cjs/models/cron-expression.model.js +304 -0
- package/dist/lib/cjs/models/cron-expression.model.js.map +1 -0
- package/dist/lib/cjs/models/models.js +18 -0
- package/dist/lib/cjs/models/models.js.map +1 -0
- package/dist/lib/cjs/schedules/cron.schedule.js +34 -0
- package/dist/lib/cjs/schedules/cron.schedule.js.map +1 -0
- package/dist/lib/cjs/schedules/date.schedule.js +27 -0
- package/dist/lib/cjs/schedules/date.schedule.js.map +1 -0
- package/dist/lib/cjs/schedules/schedules.js +19 -0
- package/dist/lib/cjs/schedules/schedules.js.map +1 -0
- package/dist/lib/cjs/servers/local-scheduler.runtime-server.js +69 -0
- package/dist/lib/cjs/servers/local-scheduler.runtime-server.js.map +1 -0
- package/dist/lib/cjs/servers/servers.js +18 -0
- package/dist/lib/cjs/servers/servers.js.map +1 -0
- package/dist/lib/cjs/types/scheduled-task-function.type.js +3 -0
- package/dist/lib/cjs/types/scheduled-task-function.type.js.map +1 -0
- package/dist/lib/cjs/types/types.js +18 -0
- package/dist/lib/cjs/types/types.js.map +1 -0
- package/dist/lib/esm/builders/builders.js +2 -0
- package/dist/lib/esm/builders/builders.js.map +1 -0
- package/dist/lib/esm/builders/cron-expression.builder.js +155 -0
- package/dist/lib/esm/builders/cron-expression.builder.js.map +1 -0
- package/dist/lib/esm/enums/day-of-week.enum.js +16 -0
- package/dist/lib/esm/enums/day-of-week.enum.js.map +1 -0
- package/dist/lib/esm/enums/enums.js +3 -0
- package/dist/lib/esm/enums/enums.js.map +1 -0
- package/dist/lib/esm/enums/month.enum.js +20 -0
- package/dist/lib/esm/enums/month.enum.js.map +1 -0
- package/dist/lib/esm/errors/errors.js +4 -0
- package/dist/lib/esm/errors/errors.js.map +1 -0
- package/dist/lib/esm/errors/invalid-cron-expression.error.js +26 -0
- package/dist/lib/esm/errors/invalid-cron-expression.error.js.map +1 -0
- package/dist/lib/esm/errors/schedule-already-exists.error.js +21 -0
- package/dist/lib/esm/errors/schedule-already-exists.error.js.map +1 -0
- package/dist/lib/esm/errors/schedule-not-found.error.js +18 -0
- package/dist/lib/esm/errors/schedule-not-found.error.js.map +1 -0
- package/dist/lib/esm/interfaces/interfaces.js +6 -0
- package/dist/lib/esm/interfaces/interfaces.js.map +1 -0
- package/dist/lib/esm/interfaces/local-scheduler.interface.js +2 -0
- package/dist/lib/esm/interfaces/local-scheduler.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/schedulable.interface.js +2 -0
- package/dist/lib/esm/interfaces/schedulable.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/schedule-descriptor.interface.js +2 -0
- package/dist/lib/esm/interfaces/schedule-descriptor.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/schedule-options.interface.js +2 -0
- package/dist/lib/esm/interfaces/schedule-options.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/schedule-state.interface.js +2 -0
- package/dist/lib/esm/interfaces/schedule-state.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/schedule.interface.js +2 -0
- package/dist/lib/esm/interfaces/schedule.interface.js.map +1 -0
- package/dist/lib/esm/local-scheduling.module.js +68 -0
- package/dist/lib/esm/local-scheduling.module.js.map +1 -0
- package/dist/lib/esm/local-scheduling.module.keyname.js +2 -0
- package/dist/lib/esm/local-scheduling.module.keyname.js.map +1 -0
- package/dist/lib/esm/managers/local-scheduler.manager.js +358 -0
- package/dist/lib/esm/managers/local-scheduler.manager.js.map +1 -0
- package/dist/lib/esm/managers/managers.js +2 -0
- package/dist/lib/esm/managers/managers.js.map +1 -0
- package/dist/lib/esm/models/cron-expression.model.js +300 -0
- package/dist/lib/esm/models/cron-expression.model.js.map +1 -0
- package/dist/lib/esm/models/models.js +2 -0
- package/dist/lib/esm/models/models.js.map +1 -0
- package/dist/lib/esm/schedules/cron.schedule.js +30 -0
- package/dist/lib/esm/schedules/cron.schedule.js.map +1 -0
- package/dist/lib/esm/schedules/date.schedule.js +23 -0
- package/dist/lib/esm/schedules/date.schedule.js.map +1 -0
- package/dist/lib/esm/schedules/schedules.js +3 -0
- package/dist/lib/esm/schedules/schedules.js.map +1 -0
- package/dist/lib/esm/servers/local-scheduler.runtime-server.js +66 -0
- package/dist/lib/esm/servers/local-scheduler.runtime-server.js.map +1 -0
- package/dist/lib/esm/servers/servers.js +2 -0
- package/dist/lib/esm/servers/servers.js.map +1 -0
- package/dist/lib/esm/types/scheduled-task-function.type.js +2 -0
- package/dist/lib/esm/types/scheduled-task-function.type.js.map +1 -0
- package/dist/lib/esm/types/types.js +2 -0
- package/dist/lib/esm/types/types.js.map +1 -0
- package/dist/lib/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/lib/tsconfig.tsbuildinfo +1 -0
- package/dist/types/builders/builders.d.ts +1 -0
- package/dist/types/builders/cron-expression.builder.d.ts +69 -0
- package/dist/types/enums/day-of-week.enum.d.ts +14 -0
- package/dist/types/enums/enums.d.ts +2 -0
- package/dist/types/enums/month.enum.d.ts +18 -0
- package/dist/types/errors/errors.d.ts +3 -0
- package/dist/types/errors/invalid-cron-expression.error.d.ts +20 -0
- package/dist/types/errors/schedule-already-exists.error.d.ts +15 -0
- package/dist/types/errors/schedule-not-found.error.d.ts +12 -0
- package/dist/types/interfaces/interfaces.d.ts +5 -0
- package/dist/types/interfaces/local-scheduler.interface.d.ts +57 -0
- package/dist/types/interfaces/schedulable.interface.d.ts +43 -0
- package/dist/types/interfaces/schedule-descriptor.interface.d.ts +22 -0
- package/dist/types/interfaces/schedule-options.interface.d.ts +37 -0
- package/dist/types/interfaces/schedule-state.interface.d.ts +24 -0
- package/dist/types/interfaces/schedule.interface.d.ts +20 -0
- package/dist/types/local-scheduling.module.d.ts +30 -0
- package/dist/types/local-scheduling.module.keyname.d.ts +1 -0
- package/dist/types/managers/local-scheduler.manager.d.ts +110 -0
- package/dist/types/managers/managers.d.ts +1 -0
- package/dist/types/models/cron-expression.model.d.ts +120 -0
- package/dist/types/models/models.d.ts +1 -0
- package/dist/types/schedules/cron.schedule.d.ts +22 -0
- package/dist/types/schedules/date.schedule.d.ts +17 -0
- package/dist/types/schedules/schedules.d.ts +2 -0
- package/dist/types/servers/local-scheduler.runtime-server.d.ts +24 -0
- package/dist/types/servers/servers.d.ts +1 -0
- package/dist/types/types/scheduled-task-function.type.d.ts +10 -0
- package/dist/types/types/types.d.ts +1 -0
- package/package.json +68 -0
- package/readme.md +307 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { CronExpression } from "../models/cron-expression.model";
|
|
2
|
+
import { CronSchedule } from "../schedules/cron.schedule";
|
|
3
|
+
/**
|
|
4
|
+
* A fluent builder for cron expressions, so a caller can compose a schedule from typed,
|
|
5
|
+
* self-describing method calls instead of hand-writing (and mis-remembering) the five-field
|
|
6
|
+
* syntax.
|
|
7
|
+
*
|
|
8
|
+
* Every method returns `this` for chaining, and each field defaults to `*` ("every"), so you
|
|
9
|
+
* only set the fields you care about — a fresh builder is already "every minute". Each method
|
|
10
|
+
* sets exactly the field it names (last write wins per field); nothing is validated until
|
|
11
|
+
* {@link build} (or {@link toSchedule}) constructs a {@link CronExpression}, which throws an
|
|
12
|
+
* `InvalidCronExpressionError` on an out-of-range value.
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* new CronExpressionBuilder().dailyAt(3).build(); // 0 3 * * *
|
|
16
|
+
* new CronExpressionBuilder().everyMinutes(15).hoursBetween(9, 17)
|
|
17
|
+
* .onDayOfWeek(DayOfWeekEnum.Monday, DayOfWeekEnum.Friday).build();
|
|
18
|
+
* new CronExpressionBuilder().weeklyOn(DayOfWeekEnum.Sunday, 2, 30).toSchedule();
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* Month and day-of-week take plain numbers; {@link MonthEnum} and {@link DayOfWeekEnum} are
|
|
22
|
+
* exported so call sites can read `inMonth(MonthEnum.January)` instead of `inMonth(1)`.
|
|
23
|
+
*/
|
|
24
|
+
export class CronExpressionBuilder {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.minuteField = "*";
|
|
27
|
+
this.hourField = "*";
|
|
28
|
+
this.dayOfMonthField = "*";
|
|
29
|
+
this.monthField = "*";
|
|
30
|
+
this.dayOfWeekField = "*";
|
|
31
|
+
}
|
|
32
|
+
// ── seconds (optional sixth field; setting any of these switches to 6-field form) ──────────
|
|
33
|
+
atSecond(second, ...more) {
|
|
34
|
+
this.secondField = [second, ...more].join(",");
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
everySeconds(step) {
|
|
38
|
+
this.secondField = CronExpressionBuilder.step(step);
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
secondsBetween(start, end, step) {
|
|
42
|
+
this.secondField = CronExpressionBuilder.range(start, end, step);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
// ── minutes ────────────────────────────────────────────────────────────────────────────────
|
|
46
|
+
atMinute(minute, ...more) {
|
|
47
|
+
this.minuteField = [minute, ...more].join(",");
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
everyMinutes(step) {
|
|
51
|
+
this.minuteField = CronExpressionBuilder.step(step);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
minutesBetween(start, end, step) {
|
|
55
|
+
this.minuteField = CronExpressionBuilder.range(start, end, step);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
// ── hours ────────────────────────────────────────────────────────────────────────────────
|
|
59
|
+
atHour(hour, ...more) {
|
|
60
|
+
this.hourField = [hour, ...more].join(",");
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
everyHours(step) {
|
|
64
|
+
this.hourField = CronExpressionBuilder.step(step);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
hoursBetween(start, end, step) {
|
|
68
|
+
this.hourField = CronExpressionBuilder.range(start, end, step);
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
// ── day of month ─────────────────────────────────────────────────────────────────────────
|
|
72
|
+
onDayOfMonth(day, ...more) {
|
|
73
|
+
this.dayOfMonthField = [day, ...more].join(",");
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
everyDaysOfMonth(step) {
|
|
77
|
+
this.dayOfMonthField = CronExpressionBuilder.step(step);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
daysOfMonthBetween(start, end, step) {
|
|
81
|
+
this.dayOfMonthField = CronExpressionBuilder.range(start, end, step);
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
// ── month (1-12; pass MonthEnum values for readability) ──────────────────────────────────
|
|
85
|
+
inMonth(month, ...more) {
|
|
86
|
+
this.monthField = [month, ...more].join(",");
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
monthsBetween(start, end, step) {
|
|
90
|
+
this.monthField = CronExpressionBuilder.range(start, end, step);
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
// ── day of week (0-7, 0 and 7 = Sunday; pass DayOfWeekEnum values) ───────────────────────
|
|
94
|
+
onDayOfWeek(day, ...more) {
|
|
95
|
+
this.dayOfWeekField = [day, ...more].join(",");
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
daysOfWeekBetween(start, end, step) {
|
|
99
|
+
this.dayOfWeekField = CronExpressionBuilder.range(start, end, step);
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
// ── high-level helpers (each sets only the fields it names) ──────────────────────────────
|
|
103
|
+
/** Every hour, at the given minute — e.g. `hourlyAtMinute(30)` is "30 * * * *". */
|
|
104
|
+
hourlyAtMinute(minute) {
|
|
105
|
+
this.minuteField = String(minute);
|
|
106
|
+
this.hourField = "*";
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
/** Every day at the given hour and minute — e.g. `dailyAt(3, 30)` is "30 3 * * *". */
|
|
110
|
+
dailyAt(hour, minute = 0) {
|
|
111
|
+
this.minuteField = String(minute);
|
|
112
|
+
this.hourField = String(hour);
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
/** The given day-of-week each week, at the given hour and minute. */
|
|
116
|
+
weeklyOn(dayOfWeek, hour, minute = 0) {
|
|
117
|
+
this.minuteField = String(minute);
|
|
118
|
+
this.hourField = String(hour);
|
|
119
|
+
this.dayOfWeekField = String(dayOfWeek);
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
/** The given day-of-month each month, at the given hour and minute. */
|
|
123
|
+
monthlyOn(dayOfMonth, hour, minute = 0) {
|
|
124
|
+
this.minuteField = String(minute);
|
|
125
|
+
this.hourField = String(hour);
|
|
126
|
+
this.dayOfMonthField = String(dayOfMonth);
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
// ── terminals ────────────────────────────────────────────────────────────────────────────
|
|
130
|
+
/** The assembled cron string (5 fields, or 6 when a seconds field has been set). */
|
|
131
|
+
toString() {
|
|
132
|
+
const fields = [this.minuteField, this.hourField, this.dayOfMonthField, this.monthField, this.dayOfWeekField];
|
|
133
|
+
return (this.secondField !== undefined ? [this.secondField, ...fields] : fields).join(" ");
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Parses and validates the assembled expression into a {@link CronExpression}.
|
|
137
|
+
* @throws {InvalidCronExpressionError} if any set value is out of range.
|
|
138
|
+
*/
|
|
139
|
+
build() {
|
|
140
|
+
return new CronExpression(this.toString());
|
|
141
|
+
}
|
|
142
|
+
/** Convenience for the scheduler: the assembled expression as a {@link CronSchedule}. */
|
|
143
|
+
toSchedule() {
|
|
144
|
+
return new CronSchedule(this.build());
|
|
145
|
+
}
|
|
146
|
+
/** Assembles a step field (`*` every `step`). */
|
|
147
|
+
static step(step) {
|
|
148
|
+
return `*/${step}`;
|
|
149
|
+
}
|
|
150
|
+
/** Assembles a range field (`start-end`, optionally stepped `start-end/step`). */
|
|
151
|
+
static range(start, end, step) {
|
|
152
|
+
return step === undefined ? `${start}-${end}` : `${start}-${end}/${step}`;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=cron-expression.builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cron-expression.builder.js","sourceRoot":"","sources":["../../../../src/builders/cron-expression.builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Days of the week, numbered as cron's day-of-week field expects (0 = Sunday … 6 = Saturday;
|
|
3
|
+
* cron also accepts 7 for Sunday). Use with {@link CronExpressionBuilder.onDayOfWeek} for
|
|
4
|
+
* readable call sites instead of raw numbers.
|
|
5
|
+
*/
|
|
6
|
+
export var DayOfWeekEnum;
|
|
7
|
+
(function (DayOfWeekEnum) {
|
|
8
|
+
DayOfWeekEnum[DayOfWeekEnum["Sunday"] = 0] = "Sunday";
|
|
9
|
+
DayOfWeekEnum[DayOfWeekEnum["Monday"] = 1] = "Monday";
|
|
10
|
+
DayOfWeekEnum[DayOfWeekEnum["Tuesday"] = 2] = "Tuesday";
|
|
11
|
+
DayOfWeekEnum[DayOfWeekEnum["Wednesday"] = 3] = "Wednesday";
|
|
12
|
+
DayOfWeekEnum[DayOfWeekEnum["Thursday"] = 4] = "Thursday";
|
|
13
|
+
DayOfWeekEnum[DayOfWeekEnum["Friday"] = 5] = "Friday";
|
|
14
|
+
DayOfWeekEnum[DayOfWeekEnum["Saturday"] = 6] = "Saturday";
|
|
15
|
+
})(DayOfWeekEnum || (DayOfWeekEnum = {}));
|
|
16
|
+
//# sourceMappingURL=day-of-week.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"day-of-week.enum.js","sourceRoot":"","sources":["../../../../src/enums/day-of-week.enum.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,qDAAU,CAAA;IACV,qDAAU,CAAA;IACV,uDAAW,CAAA;IACX,2DAAa,CAAA;IACb,yDAAY,CAAA;IACZ,qDAAU,CAAA;IACV,yDAAY,CAAA;AACd,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/enums/enums.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calendar months, numbered as cron's month field expects (1 = January … 12 = December). Use
|
|
3
|
+
* with {@link CronExpressionBuilder.inMonth} for readable call sites instead of raw numbers.
|
|
4
|
+
*/
|
|
5
|
+
export var MonthEnum;
|
|
6
|
+
(function (MonthEnum) {
|
|
7
|
+
MonthEnum[MonthEnum["January"] = 1] = "January";
|
|
8
|
+
MonthEnum[MonthEnum["February"] = 2] = "February";
|
|
9
|
+
MonthEnum[MonthEnum["March"] = 3] = "March";
|
|
10
|
+
MonthEnum[MonthEnum["April"] = 4] = "April";
|
|
11
|
+
MonthEnum[MonthEnum["May"] = 5] = "May";
|
|
12
|
+
MonthEnum[MonthEnum["June"] = 6] = "June";
|
|
13
|
+
MonthEnum[MonthEnum["July"] = 7] = "July";
|
|
14
|
+
MonthEnum[MonthEnum["August"] = 8] = "August";
|
|
15
|
+
MonthEnum[MonthEnum["September"] = 9] = "September";
|
|
16
|
+
MonthEnum[MonthEnum["October"] = 10] = "October";
|
|
17
|
+
MonthEnum[MonthEnum["November"] = 11] = "November";
|
|
18
|
+
MonthEnum[MonthEnum["December"] = 12] = "December";
|
|
19
|
+
})(MonthEnum || (MonthEnum = {}));
|
|
20
|
+
//# sourceMappingURL=month.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"month.enum.js","sourceRoot":"","sources":["../../../../src/enums/month.enum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,SAaX;AAbD,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,iDAAY,CAAA;IACZ,2CAAS,CAAA;IACT,2CAAS,CAAA;IACT,uCAAO,CAAA;IACP,yCAAQ,CAAA;IACR,yCAAQ,CAAA;IACR,6CAAU,CAAA;IACV,mDAAa,CAAA;IACb,gDAAY,CAAA;IACZ,kDAAa,CAAA;IACb,kDAAa,CAAA;AACf,CAAC,EAbW,SAAS,KAAT,SAAS,QAapB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BadRequestError } from "@pristine-ts/common";
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when a cron expression cannot be parsed or is semantically invalid.
|
|
4
|
+
*
|
|
5
|
+
* It extends {@link BadRequestError} so that, if it propagates to an HTTP boundary (for
|
|
6
|
+
* example a controller that validates a user-submitted schedule), the framework's HTTP
|
|
7
|
+
* responder surfaces it as a **400 Bad Request** automatically. The `message` is written
|
|
8
|
+
* to be safe and precise enough to return verbatim to the caller, and the offending
|
|
9
|
+
* `expression` (plus optional field context) is carried in the error `details` bag.
|
|
10
|
+
*/
|
|
11
|
+
export class InvalidCronExpressionError extends BadRequestError {
|
|
12
|
+
/**
|
|
13
|
+
* @param message A precise, caller-safe description of what is wrong with the expression.
|
|
14
|
+
* @param expression The raw cron expression that failed to parse.
|
|
15
|
+
* @param field The name of the offending field (e.g. `"minute"`), when known.
|
|
16
|
+
*/
|
|
17
|
+
constructor(message, expression, field) {
|
|
18
|
+
super(message, {
|
|
19
|
+
code: "INVALID_CRON_EXPRESSION",
|
|
20
|
+
details: Object.assign({ expression }, (field !== undefined ? { field } : {})),
|
|
21
|
+
});
|
|
22
|
+
this.expression = expression;
|
|
23
|
+
this.field = field;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=invalid-cron-expression.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-cron-expression.error.js","sourceRoot":"","sources":["../../../../src/errors/invalid-cron-expression.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC7D;;;;OAIG;IACH,YACE,OAAe,EACC,UAAkB,EAClB,KAAc;QAE9B,KAAK,CAAC,OAAO,EAAE;YACb,IAAI,EAAE,yBAAyB;YAC/B,OAAO,kBAAG,UAAU,IAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC/D,CAAC,CAAC;QANa,eAAU,GAAV,UAAU,CAAQ;QAClB,UAAK,GAAL,KAAK,CAAS;IAMhC,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ConflictError } from "@pristine-ts/common";
|
|
2
|
+
/**
|
|
3
|
+
* Thrown by `schedule(id, ...)` when the id is already registered. Registration is
|
|
4
|
+
* intentionally not idempotent so that a duplicate id — almost always a bug in the
|
|
5
|
+
* consumer's bootstrap — surfaces loudly instead of silently double-arming a timer. To
|
|
6
|
+
* replace an existing schedule, call `unschedule(id)` first, or `reschedule(id, ...)` to
|
|
7
|
+
* only change its expression.
|
|
8
|
+
*
|
|
9
|
+
* It extends {@link ConflictError} so it surfaces as a **409 Conflict** if it reaches an
|
|
10
|
+
* HTTP boundary.
|
|
11
|
+
*/
|
|
12
|
+
export class ScheduleAlreadyExistsError extends ConflictError {
|
|
13
|
+
constructor(id) {
|
|
14
|
+
super(`A schedule is already registered with the id '${id}'.`, {
|
|
15
|
+
code: "SCHEDULE_ALREADY_EXISTS",
|
|
16
|
+
details: { id },
|
|
17
|
+
});
|
|
18
|
+
this.id = id;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=schedule-already-exists.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-already-exists.error.js","sourceRoot":"","sources":["../../../../src/errors/schedule-already-exists.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IAC3D,YAAmC,EAAU;QAC3C,KAAK,CAAC,iDAAiD,EAAE,IAAI,EAAE;YAC7D,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,EAAC,EAAE,EAAC;SACd,CAAC,CAAC;QAJ8B,OAAE,GAAF,EAAE,CAAQ;IAK7C,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { NotFoundError } from "@pristine-ts/common";
|
|
2
|
+
/**
|
|
3
|
+
* Thrown when an operation references a schedule id that is not registered (for example
|
|
4
|
+
* `reschedule(id, ...)` or `getNextExecutionDate(id)` on an unknown id).
|
|
5
|
+
*
|
|
6
|
+
* It extends {@link NotFoundError} so it surfaces as a **404 Not Found** if it reaches an
|
|
7
|
+
* HTTP boundary — convenient when a controller mutates schedules by id.
|
|
8
|
+
*/
|
|
9
|
+
export class ScheduleNotFoundError extends NotFoundError {
|
|
10
|
+
constructor(id) {
|
|
11
|
+
super(`No schedule is registered with the id '${id}'.`, {
|
|
12
|
+
code: "SCHEDULE_NOT_FOUND",
|
|
13
|
+
details: { id },
|
|
14
|
+
});
|
|
15
|
+
this.id = id;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=schedule-not-found.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-not-found.error.js","sourceRoot":"","sources":["../../../../src/errors/schedule-not-found.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD,YAAmC,EAAU;QAC3C,KAAK,CAAC,0CAA0C,EAAE,IAAI,EAAE;YACtD,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,EAAC,EAAE,EAAC;SACd,CAAC,CAAC;QAJ8B,OAAE,GAAF,EAAE,CAAQ;IAK7C,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-scheduler.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/local-scheduler.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedulable.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/schedulable.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-descriptor.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/schedule-descriptor.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/schedule-options.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-state.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/schedule-state.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/schedule.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { LoggingModule } from "@pristine-ts/logging";
|
|
11
|
+
import { CoreModule } from "@pristine-ts/core";
|
|
12
|
+
import { SchedulingModule } from "@pristine-ts/scheduling";
|
|
13
|
+
import { LocalSchedulingModuleKeyname } from "./local-scheduling.module.keyname";
|
|
14
|
+
import { LocalSchedulerRuntimeServer } from "./servers/local-scheduler.runtime-server";
|
|
15
|
+
export * from "./builders/builders";
|
|
16
|
+
export * from "./enums/enums";
|
|
17
|
+
export * from "./errors/errors";
|
|
18
|
+
export * from "./interfaces/interfaces";
|
|
19
|
+
export * from "./managers/managers";
|
|
20
|
+
export * from "./models/models";
|
|
21
|
+
export * from "./schedules/schedules";
|
|
22
|
+
export * from "./servers/servers";
|
|
23
|
+
export * from "./types/types";
|
|
24
|
+
export * from "./local-scheduling.module.keyname";
|
|
25
|
+
/**
|
|
26
|
+
* The local-scheduling module. Import it into your application module to make
|
|
27
|
+
* {@link LocalSchedulerManager} injectable and to have every {@link SchedulableInterface} you
|
|
28
|
+
* tag with `@tag(ServiceDefinitionTagEnum.Schedulable)` auto-registered when the scheduler
|
|
29
|
+
* starts.
|
|
30
|
+
*
|
|
31
|
+
* You do not have to start the scheduler yourself: {@link LocalSchedulerRuntimeServer} is
|
|
32
|
+
* tagged as a {@link RuntimeServerInterface}, so `pristine start` starts it (and stops it on
|
|
33
|
+
* shutdown, via `onShutdown` below) alongside the HTTP/gRPC servers. Resolve
|
|
34
|
+
* {@link LocalSchedulerManager} directly only when you need the dynamic API (adding schedules
|
|
35
|
+
* from a database, mutating them from controllers).
|
|
36
|
+
*
|
|
37
|
+
* It builds on `@pristine-ts/scheduling` — a {@link SchedulableInterface} is a
|
|
38
|
+
* {@link ScheduledTaskInterface} that also declares its schedule — and is otherwise
|
|
39
|
+
* platform-neutral: it depends only on core, logging, and scheduling, and registers no event
|
|
40
|
+
* mappers or handlers. It coexists with `@pristine-ts/aws-scheduling` and the other scheduling
|
|
41
|
+
* drivers — none of them interfere with the others.
|
|
42
|
+
*/
|
|
43
|
+
export const LocalSchedulingModule = {
|
|
44
|
+
keyname: LocalSchedulingModuleKeyname,
|
|
45
|
+
importModules: [
|
|
46
|
+
CoreModule,
|
|
47
|
+
LoggingModule,
|
|
48
|
+
SchedulingModule,
|
|
49
|
+
],
|
|
50
|
+
providerRegistrations: [],
|
|
51
|
+
configurationDefinitions: [],
|
|
52
|
+
onShutdown: (container) => __awaiter(void 0, void 0, void 0, function* () {
|
|
53
|
+
try {
|
|
54
|
+
// ── container.resolve, justified ────────────────────────────────────────
|
|
55
|
+
// Per CLAUDE.md: module lifecycle hook. `onShutdown` is a callback fired by the
|
|
56
|
+
// kernel with the container as its argument — there is no class to constructor-inject
|
|
57
|
+
// into. Resolving from the provided container is the framework's intended path (the
|
|
58
|
+
// same shape as HttpModule's onShutdown for KernelHttpServer).
|
|
59
|
+
const runtimeServer = container.resolve(LocalSchedulerRuntimeServer);
|
|
60
|
+
yield runtimeServer.stop();
|
|
61
|
+
}
|
|
62
|
+
catch (_a) {
|
|
63
|
+
// The scheduler may not be resolvable if the container is degraded during shutdown.
|
|
64
|
+
// Swallow so other modules' onShutdown still run; stop() is idempotent anyway.
|
|
65
|
+
}
|
|
66
|
+
}),
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=local-scheduling.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-scheduling.module.js","sourceRoot":"","sources":["../../../src/local-scheduling.module.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,0CAA0C,CAAC;AAErF,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAE9B,cAAc,mCAAmC,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAoB;IACpD,OAAO,EAAE,4BAA4B;IACrC,aAAa,EAAE;QACb,UAAU;QACV,aAAa;QACb,gBAAgB;KACjB;IACD,qBAAqB,EAAE,EAAE;IACzB,wBAAwB,EAAE,EAAE;IAC5B,UAAU,EAAE,CAAO,SAAS,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,2EAA2E;YAC3E,gFAAgF;YAChF,sFAAsF;YACtF,oFAAoF;YACpF,+DAA+D;YAC/D,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YACrE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,WAAM,CAAC;YACP,oFAAoF;YACpF,+EAA+E;QACjF,CAAC;IACH,CAAC,CAAA;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-scheduling.module.keyname.js","sourceRoot":"","sources":["../../../src/local-scheduling.module.keyname.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAW,2BAA2B,CAAC"}
|