mongodash 2.0.0 → 2.1.0
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 +40 -22
- package/dist/dashboard/index.html +40 -0
- package/dist/lib/playground/server.js +131 -0
- package/dist/lib/playground/server.js.map +1 -0
- package/dist/lib/src/ConcurrentRunner.js +148 -0
- package/dist/lib/src/ConcurrentRunner.js.map +1 -0
- package/dist/lib/{OnError.js → src/OnError.js} +3 -3
- package/dist/lib/src/OnError.js.map +1 -0
- package/dist/lib/{OnInfo.js → src/OnInfo.js} +6 -3
- package/dist/lib/src/OnInfo.js.map +1 -0
- package/dist/lib/{createContinuousLock.js → src/createContinuousLock.js} +5 -3
- package/dist/lib/src/createContinuousLock.js.map +1 -0
- package/dist/lib/{cronTasks.js → src/cronTasks.js} +129 -73
- package/dist/lib/src/cronTasks.js.map +1 -0
- package/dist/lib/{getCollection.js → src/getCollection.js} +2 -2
- package/dist/lib/src/getCollection.js.map +1 -0
- package/dist/lib/{getMongoClient.js → src/getMongoClient.js} +2 -2
- package/dist/lib/src/getMongoClient.js.map +1 -0
- package/dist/lib/src/globalsCollection.js +10 -0
- package/dist/lib/src/globalsCollection.js.map +1 -0
- package/dist/lib/src/index.js +101 -0
- package/dist/lib/src/index.js.map +1 -0
- package/dist/lib/{initPromise.js → src/initPromise.js} +2 -3
- package/dist/lib/src/initPromise.js.map +1 -0
- package/dist/lib/src/mongoCompatibility.js +10 -0
- package/dist/lib/src/mongoCompatibility.js.map +1 -0
- package/dist/lib/src/parseInterval.js +60 -0
- package/dist/lib/src/parseInterval.js.map +1 -0
- package/dist/lib/src/prefixFilterKeys.js +69 -0
- package/dist/lib/src/prefixFilterKeys.js.map +1 -0
- package/dist/lib/src/processInBatches.js +46 -0
- package/dist/lib/src/processInBatches.js.map +1 -0
- package/dist/lib/src/reactiveTasks/LeaderElector.js +155 -0
- package/dist/lib/src/reactiveTasks/LeaderElector.js.map +1 -0
- package/dist/lib/src/reactiveTasks/MetricsCollector.js +410 -0
- package/dist/lib/src/reactiveTasks/MetricsCollector.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskManager.js +288 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskManager.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskOps.js +185 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskOps.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskPlanner.js +443 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskPlanner.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskReconciler.js +218 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskReconciler.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskRegistry.js +184 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskRegistry.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskRepository.js +355 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskRepository.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskRetryStrategy.js +153 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskRetryStrategy.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskTypes.js +34 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskTypes.js.map +1 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskWorker.js +186 -0
- package/dist/lib/src/reactiveTasks/ReactiveTaskWorker.js.map +1 -0
- package/dist/lib/src/reactiveTasks/compileWatchProjection.js +65 -0
- package/dist/lib/src/reactiveTasks/compileWatchProjection.js.map +1 -0
- package/dist/lib/src/reactiveTasks/index.js +298 -0
- package/dist/lib/src/reactiveTasks/index.js.map +1 -0
- package/dist/lib/src/reactiveTasks/queryToExpression.js +160 -0
- package/dist/lib/src/reactiveTasks/queryToExpression.js.map +1 -0
- package/dist/lib/src/reactiveTasks/validateTaskFilter.js +88 -0
- package/dist/lib/src/reactiveTasks/validateTaskFilter.js.map +1 -0
- package/dist/lib/src/task-management/OperationalTaskController.js +162 -0
- package/dist/lib/src/task-management/OperationalTaskController.js.map +1 -0
- package/dist/lib/src/task-management/index.js +27 -0
- package/dist/lib/src/task-management/index.js.map +1 -0
- package/dist/lib/src/task-management/serveDashboard.js +149 -0
- package/dist/lib/src/task-management/serveDashboard.js.map +1 -0
- package/dist/lib/src/task-management/types.js +10 -0
- package/dist/lib/src/task-management/types.js.map +1 -0
- package/dist/lib/{withLock.js → src/withLock.js} +3 -4
- package/dist/lib/src/withLock.js.map +1 -0
- package/dist/lib/{withTransaction.js → src/withTransaction.js} +4 -4
- package/dist/lib/src/withTransaction.js.map +1 -0
- package/dist/lib/tools/check-db-connection.js +28 -0
- package/dist/lib/tools/check-db-connection.js.map +1 -0
- package/dist/lib/tools/clean-testing-databases.js +12 -0
- package/dist/lib/tools/clean-testing-databases.js.map +1 -0
- package/dist/lib/tools/prepare-republish.js +27 -0
- package/dist/lib/tools/prepare-republish.js.map +1 -0
- package/dist/lib/tools/test-matrix-local.js +212 -0
- package/dist/lib/tools/test-matrix-local.js.map +1 -0
- package/dist/lib/tools/testingDatabase.js +55 -0
- package/dist/lib/tools/testingDatabase.js.map +1 -0
- package/dist/types/playground/server.d.ts +1 -0
- package/dist/types/src/ConcurrentRunner.d.ts +30 -0
- package/dist/types/{OnInfo.d.ts → src/OnInfo.d.ts} +1 -1
- package/dist/types/{cronTasks.d.ts → src/cronTasks.d.ts} +44 -1
- package/dist/types/src/globalsCollection.d.ts +4 -0
- package/dist/types/src/index.d.ts +28 -0
- package/dist/types/src/mongoCompatibility.d.ts +29 -0
- package/dist/types/src/parseInterval.d.ts +12 -0
- package/dist/types/src/prefixFilterKeys.d.ts +11 -0
- package/dist/types/src/processInBatches.d.ts +10 -0
- package/dist/types/src/reactiveTasks/LeaderElector.d.ts +42 -0
- package/dist/types/src/reactiveTasks/MetricsCollector.d.ts +73 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskManager.d.ts +18 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskOps.d.ts +17 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskPlanner.d.ts +62 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskReconciler.d.ts +29 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskRegistry.d.ts +34 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskRepository.d.ts +59 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskRetryStrategy.d.ts +21 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskTypes.d.ts +389 -0
- package/dist/types/src/reactiveTasks/ReactiveTaskWorker.d.ts +36 -0
- package/dist/types/src/reactiveTasks/compileWatchProjection.d.ts +12 -0
- package/dist/types/src/reactiveTasks/index.d.ts +82 -0
- package/dist/types/src/reactiveTasks/queryToExpression.d.ts +13 -0
- package/dist/types/src/reactiveTasks/validateTaskFilter.d.ts +10 -0
- package/dist/types/src/task-management/OperationalTaskController.d.ts +59 -0
- package/dist/types/src/task-management/index.d.ts +3 -0
- package/dist/types/src/task-management/serveDashboard.d.ts +12 -0
- package/dist/types/src/task-management/types.d.ts +95 -0
- package/dist/types/tools/check-db-connection.d.ts +2 -0
- package/dist/types/tools/clean-testing-databases.d.ts +1 -0
- package/dist/types/tools/prepare-republish.d.ts +2 -0
- package/dist/types/tools/test-matrix-local.d.ts +1 -0
- package/dist/types/tools/testingDatabase.d.ts +2 -0
- package/docs/.vitepress/cache/deps/_metadata.json +31 -0
- package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +12824 -0
- package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +7 -0
- package/docs/.vitepress/cache/deps/package.json +3 -0
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4505 -0
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +9731 -0
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/docs/.vitepress/cache/deps/vue.js +347 -0
- package/docs/.vitepress/cache/deps/vue.js.map +7 -0
- package/docs/.vitepress/config.mts +48 -0
- package/docs/.vitepress/theme/index.ts +4 -0
- package/docs/.vitepress/theme/style.css +16 -0
- package/docs/assets/dashboard.png +0 -0
- package/docs/cron-tasks.md +172 -0
- package/docs/dashboard.md +117 -0
- package/docs/getters.md +31 -0
- package/docs/getting-started.md +120 -0
- package/docs/index.md +29 -0
- package/docs/initialization.md +59 -0
- package/docs/process-in-batches.md +73 -0
- package/docs/reactive-tasks.md +914 -0
- package/docs/with-lock.md +45 -0
- package/docs/with-transaction.md +65 -0
- package/grafana/reactive_tasks.json +765 -0
- package/package.json +127 -116
- package/dist/lib/OnError.js.map +0 -1
- package/dist/lib/OnInfo.js.map +0 -1
- package/dist/lib/createContinuousLock.js.map +0 -1
- package/dist/lib/cronTasks.js.map +0 -1
- package/dist/lib/getCollection.js.map +0 -1
- package/dist/lib/getMongoClient.js.map +0 -1
- package/dist/lib/index.js +0 -64
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/initPromise.js.map +0 -1
- package/dist/lib/withLock.js.map +0 -1
- package/dist/lib/withTransaction.js.map +0 -1
- package/dist/types/index.d.ts +0 -17
- /package/dist/types/{OnError.d.ts → src/OnError.d.ts} +0 -0
- /package/dist/types/{createContinuousLock.d.ts → src/createContinuousLock.d.ts} +0 -0
- /package/dist/types/{getCollection.d.ts → src/getCollection.d.ts} +0 -0
- /package/dist/types/{getMongoClient.d.ts → src/getMongoClient.d.ts} +0 -0
- /package/dist/types/{initPromise.d.ts → src/initPromise.d.ts} +0 -0
- /package/dist/types/{withLock.d.ts → src/withLock.d.ts} +0 -0
- /package/dist/types/{withTransaction.d.ts → src/withTransaction.d.ts} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**!
|
|
2
|
-
* mongodash v2.
|
|
3
|
-
* https://github.com/VaclavObornik/mongodash.git
|
|
2
|
+
* mongodash v2.1.0
|
|
3
|
+
* git+https://github.com/VaclavObornik/mongodash.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) 2025 Václav Oborník
|
|
6
6
|
* Released under the MIT license
|
|
@@ -25,16 +25,19 @@ exports.stopCronTasks = stopCronTasks;
|
|
|
25
25
|
exports.startCronTasks = startCronTasks;
|
|
26
26
|
exports.scheduleCronTaskImmediately = scheduleCronTaskImmediately;
|
|
27
27
|
exports.cronTask = cronTask;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
exports.getCronTasksList = getCronTasksList;
|
|
29
|
+
exports.triggerCronTask = triggerCronTask;
|
|
30
|
+
exports.getRegisteredCronTaskIds = getRegisteredCronTaskIds;
|
|
31
31
|
const createContinuousLock_1 = require("./createContinuousLock");
|
|
32
32
|
const getCollection_1 = require("./getCollection");
|
|
33
33
|
const initPromise_1 = require("./initPromise");
|
|
34
|
+
const parseInterval_1 = require("./parseInterval");
|
|
34
35
|
exports.CODE_CRON_TASK_STARTED = 'cronTaskStarted';
|
|
35
36
|
exports.CODE_CRON_TASK_FINISHED = 'cronTaskFinished';
|
|
36
37
|
exports.CODE_CRON_TASK_SCHEDULED = 'cronTaskScheduled';
|
|
37
38
|
exports.CODE_CRON_TASK_FAILED = 'cronTaskFailed';
|
|
39
|
+
// const debug = _debug('mongodash:cronTasks');
|
|
40
|
+
const debug = (..._args) => { };
|
|
38
41
|
class TaskDocument {
|
|
39
42
|
constructor(_id, runSince) {
|
|
40
43
|
this._id = _id;
|
|
@@ -61,40 +64,12 @@ const state = {
|
|
|
61
64
|
ensureIndexPromise: null,
|
|
62
65
|
cronExpressionParserOptions: {},
|
|
63
66
|
};
|
|
64
|
-
let
|
|
65
|
-
let
|
|
66
|
-
let
|
|
67
|
-
let
|
|
68
|
-
function dateInMillis(milliseconds) {
|
|
69
|
-
return new Date(Date.now() + milliseconds);
|
|
70
|
-
}
|
|
71
|
-
const invalidIntervalMessage = `Invalid interval.`;
|
|
67
|
+
let taskCaller;
|
|
68
|
+
let taskFilter;
|
|
69
|
+
let onError;
|
|
70
|
+
let onInfo;
|
|
72
71
|
function createIntervalFunctionFromScalar(interval) {
|
|
73
|
-
|
|
74
|
-
if (!Number.isFinite(interval)) {
|
|
75
|
-
throw new Error('Interval number has to be finite.');
|
|
76
|
-
}
|
|
77
|
-
return () => dateInMillis(interval);
|
|
78
|
-
}
|
|
79
|
-
else if (typeof interval !== 'string') {
|
|
80
|
-
throw new Error(invalidIntervalMessage);
|
|
81
|
-
}
|
|
82
|
-
if (/^CRON /i.test(interval)) {
|
|
83
|
-
try {
|
|
84
|
-
const expression = interval.slice(5);
|
|
85
|
-
const parsedExpression = cron_parser_1.default.parse(expression, state.cronExpressionParserOptions);
|
|
86
|
-
return () => parsedExpression.next().toDate();
|
|
87
|
-
}
|
|
88
|
-
catch (err) {
|
|
89
|
-
throw new Error(`${invalidIntervalMessage} ${err.message}.`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
const duration = (0, parse_duration_1.default)(interval);
|
|
93
|
-
// debug('parsed duration: ', duration);
|
|
94
|
-
if (typeof duration !== 'number') {
|
|
95
|
-
throw new Error(invalidIntervalMessage);
|
|
96
|
-
}
|
|
97
|
-
return () => dateInMillis(duration);
|
|
72
|
+
return (0, parseInterval_1.createIntervalFunction)(interval, { cronOptions: state.cronExpressionParserOptions });
|
|
98
73
|
}
|
|
99
74
|
async function getNextRunDate(intervalFunction) {
|
|
100
75
|
const maybeDate = await intervalFunction();
|
|
@@ -108,7 +83,7 @@ async function runCronTask(taskId) {
|
|
|
108
83
|
if ((_a = new Error().stack) === null || _a === void 0 ? void 0 : _a.includes('mongoDashRunTaskNotCyclic')) {
|
|
109
84
|
throw new Error('It is not possible to call runCronTask inside another running task. Use the scheduleCronTaskImmediately() function instead.');
|
|
110
85
|
}
|
|
111
|
-
|
|
86
|
+
debug(`runCronTask called for ${taskId}`);
|
|
112
87
|
if (!state.tasks.has(taskId)) {
|
|
113
88
|
throw new Error(`Cannot run unknown task '${taskId}'.`);
|
|
114
89
|
}
|
|
@@ -135,7 +110,7 @@ function getUnlockedFilter() {
|
|
|
135
110
|
}
|
|
136
111
|
function getTasksToProcessFilter() {
|
|
137
112
|
return {
|
|
138
|
-
$and: [{ _id: { $in: Array.from(state.tasks.keys()).filter((taskId) =>
|
|
113
|
+
$and: [{ _id: { $in: Array.from(state.tasks.keys()).filter((taskId) => taskFilter({ taskId })) } }, getUnlockedFilter()],
|
|
139
114
|
};
|
|
140
115
|
}
|
|
141
116
|
async function findATaskToRun(enforcedTask) {
|
|
@@ -148,8 +123,8 @@ async function findATaskToRun(enforcedTask) {
|
|
|
148
123
|
$and: [{ $or: [{ runSince: { $lte: new Date() } }, { runImmediately: true }] }, getTasksToProcessFilter()],
|
|
149
124
|
};
|
|
150
125
|
}
|
|
151
|
-
|
|
152
|
-
const
|
|
126
|
+
debug('finding a task', JSON.stringify(filter, null, 2));
|
|
127
|
+
const result = await state.collection.findOneAndUpdate(filter, {
|
|
153
128
|
$set: {
|
|
154
129
|
lockedTill: getLockDate(),
|
|
155
130
|
runImmediately: false,
|
|
@@ -170,6 +145,8 @@ async function findATaskToRun(enforcedTask) {
|
|
|
170
145
|
projection: { _id: true, runImmediately: true },
|
|
171
146
|
includeResultMetadata: true,
|
|
172
147
|
});
|
|
148
|
+
// Handle v4/v5+ compatibility
|
|
149
|
+
const document = result.value;
|
|
173
150
|
if (!document) {
|
|
174
151
|
if (enforcedTask) {
|
|
175
152
|
enforcedTask.reject(new Error('The task document not found or is locked right now.'));
|
|
@@ -186,41 +163,40 @@ async function findATaskToRun(enforcedTask) {
|
|
|
186
163
|
});
|
|
187
164
|
return null;
|
|
188
165
|
}
|
|
189
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
190
166
|
return state.tasks.get(document._id);
|
|
191
167
|
}
|
|
192
168
|
async function processTask(task, enforcedTask) {
|
|
193
|
-
const stopContinuousLock = (0, createContinuousLock_1.createContinuousLock)(state.collection, task.taskId, 'lockedTill', lockTime,
|
|
169
|
+
const stopContinuousLock = (0, createContinuousLock_1.createContinuousLock)(state.collection, task.taskId, 'lockedTill', lockTime, onError);
|
|
194
170
|
const processTheTask = async () => {
|
|
195
|
-
|
|
171
|
+
debug(`processing task ${task.taskId} `);
|
|
196
172
|
let taskError = null;
|
|
197
173
|
let nextRunDate;
|
|
198
174
|
let nextRunScheduled = false;
|
|
199
175
|
const start = new Date();
|
|
200
176
|
try {
|
|
201
177
|
function mongoDashRunTaskNotCyclic() {
|
|
202
|
-
|
|
178
|
+
onInfo({ message: `Cron task '${task.taskId}' started.`, taskId: task.taskId, code: exports.CODE_CRON_TASK_STARTED });
|
|
203
179
|
return task.task();
|
|
204
180
|
}
|
|
205
181
|
await mongoDashRunTaskNotCyclic();
|
|
206
182
|
const duration = Date.now() - start.getTime();
|
|
207
|
-
|
|
183
|
+
onInfo({ message: `Cron task '${task.taskId}' finished in ${duration} ms.`, taskId: task.taskId, code: exports.CODE_CRON_TASK_FINISHED, duration });
|
|
208
184
|
}
|
|
209
185
|
catch (err) {
|
|
210
186
|
const duration = Date.now() - start.getTime();
|
|
211
|
-
const reason = err instanceof Error ? err.message : `${err}`;
|
|
212
|
-
|
|
187
|
+
const reason = err instanceof Error ? err.message : `${err} `;
|
|
188
|
+
onInfo({ message: `Cron task '${task.taskId}' failed in ${duration} ms.`, taskId: task.taskId, code: exports.CODE_CRON_TASK_FAILED, reason, duration });
|
|
213
189
|
taskError = err;
|
|
214
190
|
}
|
|
215
191
|
try {
|
|
216
192
|
await stopContinuousLock(); // to avoid possibility of lock after the following document update
|
|
217
193
|
nextRunDate = await getNextRunDate(task.intervalFunction);
|
|
218
|
-
|
|
194
|
+
debug(`scheduling task ${task.taskId} to run in ${nextRunDate.getTime() - Date.now()} ms`);
|
|
219
195
|
await state.collection.updateOne({ _id: task.taskId }, {
|
|
220
196
|
$set: {
|
|
221
197
|
runSince: nextRunDate,
|
|
222
198
|
lockedTill: null,
|
|
223
|
-
'runLog.0.error': taskError ? `${taskError}` : null,
|
|
199
|
+
'runLog.0.error': taskError ? `${taskError} ` : null,
|
|
224
200
|
'runLog.0.finishedAt': new Date(),
|
|
225
201
|
},
|
|
226
202
|
});
|
|
@@ -236,11 +212,11 @@ async function processTask(task, enforcedTask) {
|
|
|
236
212
|
}
|
|
237
213
|
}
|
|
238
214
|
else if (taskError) {
|
|
239
|
-
|
|
215
|
+
onError(taskError);
|
|
240
216
|
}
|
|
241
217
|
// we want to inform about the scheduling after the
|
|
242
218
|
if (nextRunScheduled) {
|
|
243
|
-
|
|
219
|
+
onInfo({
|
|
244
220
|
message: `Cron task '${task.taskId}' scheduled to ${nextRunDate.toISOString()}.`,
|
|
245
221
|
taskId: task.taskId,
|
|
246
222
|
code: exports.CODE_CRON_TASK_SCHEDULED,
|
|
@@ -250,13 +226,13 @@ async function processTask(task, enforcedTask) {
|
|
|
250
226
|
}
|
|
251
227
|
};
|
|
252
228
|
try {
|
|
253
|
-
await
|
|
229
|
+
await taskCaller(processTheTask);
|
|
254
230
|
}
|
|
255
231
|
catch (err) {
|
|
256
232
|
// todo revise why we need to do this
|
|
257
233
|
// this should fix situations when the _taskCaller has a problem
|
|
258
234
|
await stopContinuousLock();
|
|
259
|
-
|
|
235
|
+
onError(err);
|
|
260
236
|
}
|
|
261
237
|
}
|
|
262
238
|
/** can never throw */
|
|
@@ -273,12 +249,12 @@ async function getWaitTimeByNextTask() {
|
|
|
273
249
|
return Math.min(Math.max(timeToNext, 0), noTaskWaitTime);
|
|
274
250
|
}
|
|
275
251
|
catch (error) {
|
|
276
|
-
|
|
252
|
+
onError(error);
|
|
277
253
|
return noTaskWaitTime;
|
|
278
254
|
}
|
|
279
255
|
}
|
|
280
256
|
function runATask() {
|
|
281
|
-
|
|
257
|
+
debug('runATask called');
|
|
282
258
|
state.working = true;
|
|
283
259
|
(async () => {
|
|
284
260
|
await initPromise_1.initPromise;
|
|
@@ -288,18 +264,18 @@ function runATask() {
|
|
|
288
264
|
try {
|
|
289
265
|
task = await findATaskToRun(enforcedTask);
|
|
290
266
|
if (!task) {
|
|
291
|
-
|
|
267
|
+
debug('no pending task found');
|
|
292
268
|
return; // the finally statement will be called anyway
|
|
293
269
|
}
|
|
294
270
|
await processTask(task, enforcedTask);
|
|
295
271
|
}
|
|
296
272
|
catch (error) {
|
|
297
|
-
|
|
273
|
+
debug(`Catch error ${error} `);
|
|
298
274
|
if (enforcedTask) {
|
|
299
275
|
enforcedTask.reject(error);
|
|
300
276
|
}
|
|
301
277
|
else {
|
|
302
|
-
|
|
278
|
+
onError(error);
|
|
303
279
|
}
|
|
304
280
|
}
|
|
305
281
|
finally {
|
|
@@ -319,9 +295,9 @@ function runATask() {
|
|
|
319
295
|
}
|
|
320
296
|
// should we still trigger next?
|
|
321
297
|
if (shouldTriggerNext()) {
|
|
322
|
-
|
|
298
|
+
debug(`SCHEDULING NEXT CHECK AFTER ${waitTime} ms`);
|
|
323
299
|
state.nextTaskTimeoutId = setTimeout(() => {
|
|
324
|
-
|
|
300
|
+
debug("it's time!");
|
|
325
301
|
state.nextTaskTimeoutId = null;
|
|
326
302
|
runATask();
|
|
327
303
|
}, waitTime);
|
|
@@ -331,16 +307,16 @@ function runATask() {
|
|
|
331
307
|
}
|
|
332
308
|
})();
|
|
333
309
|
}
|
|
334
|
-
function init(
|
|
335
|
-
if (cronExpressionParserOptions.endDate) {
|
|
310
|
+
function init(initOptions) {
|
|
311
|
+
if (initOptions.cronExpressionParserOptions.endDate) {
|
|
336
312
|
throw new Error("The 'endDate' parameter of the cron-parser package is not supported yet.");
|
|
337
313
|
}
|
|
338
|
-
state.shouldRun = runCronTasks;
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
state.cronExpressionParserOptions = cronExpressionParserOptions;
|
|
314
|
+
state.shouldRun = initOptions.runCronTasks;
|
|
315
|
+
onError = initOptions.onError;
|
|
316
|
+
onInfo = initOptions.onInfo;
|
|
317
|
+
taskCaller = initOptions.cronTaskCaller;
|
|
318
|
+
taskFilter = initOptions.cronTaskFilter;
|
|
319
|
+
state.cronExpressionParserOptions = initOptions.cronExpressionParserOptions;
|
|
344
320
|
}
|
|
345
321
|
function ensureStarted() {
|
|
346
322
|
// terminate waiting if there is any
|
|
@@ -349,13 +325,13 @@ function ensureStarted() {
|
|
|
349
325
|
state.nextTaskTimeoutId = null;
|
|
350
326
|
}
|
|
351
327
|
if (!state.working) {
|
|
352
|
-
|
|
328
|
+
debug('STARTING LOOP');
|
|
353
329
|
runATask();
|
|
354
330
|
}
|
|
355
331
|
// else the loop is already set
|
|
356
332
|
}
|
|
357
333
|
function stopCronTasks() {
|
|
358
|
-
|
|
334
|
+
debug('STOPPING CRON TASKS');
|
|
359
335
|
state.shouldRun = false;
|
|
360
336
|
if (state.nextTaskTimeoutId) {
|
|
361
337
|
clearTimeout(state.nextTaskTimeoutId);
|
|
@@ -391,10 +367,90 @@ async function cronTask(taskId, interval, task) {
|
|
|
391
367
|
task,
|
|
392
368
|
intervalFunction,
|
|
393
369
|
});
|
|
394
|
-
|
|
370
|
+
debug(`task ${taskId} has been registered`);
|
|
395
371
|
await ensureIndex();
|
|
396
372
|
if (state.shouldRun) {
|
|
397
373
|
ensureStarted();
|
|
398
374
|
}
|
|
399
375
|
}
|
|
376
|
+
/**
|
|
377
|
+
* Lists cron tasks with pagination and sorting.
|
|
378
|
+
*/
|
|
379
|
+
async function getCronTasksList(query = {}) {
|
|
380
|
+
var _a, _b, _c, _d, _e;
|
|
381
|
+
const limit = (_a = query.limit) !== null && _a !== void 0 ? _a : 50;
|
|
382
|
+
const skip = (_b = query.skip) !== null && _b !== void 0 ? _b : 0;
|
|
383
|
+
let sortField = ((_c = query.sort) === null || _c === void 0 ? void 0 : _c.field) || 'runSince';
|
|
384
|
+
if (sortField === 'nextRunAt')
|
|
385
|
+
sortField = 'runSince';
|
|
386
|
+
const sort = { [sortField]: (_e = (_d = query.sort) === null || _d === void 0 ? void 0 : _d.direction) !== null && _e !== void 0 ? _e : 1 };
|
|
387
|
+
let localTaskIds = Array.from(state.tasks.keys());
|
|
388
|
+
if (query.filter) {
|
|
389
|
+
const regex = new RegExp(query.filter, 'i');
|
|
390
|
+
localTaskIds = localTaskIds.filter((id) => regex.test(id));
|
|
391
|
+
}
|
|
392
|
+
const filter = {
|
|
393
|
+
_id: { $in: localTaskIds },
|
|
394
|
+
};
|
|
395
|
+
const [docs, total] = await Promise.all([
|
|
396
|
+
state.collection.find(filter).sort(sort).skip(skip).limit(limit).toArray(),
|
|
397
|
+
state.collection.countDocuments(filter),
|
|
398
|
+
]);
|
|
399
|
+
const items = docs.map((doc) => {
|
|
400
|
+
const lastRun = doc.runLog[0] || null;
|
|
401
|
+
let lastRunData = null;
|
|
402
|
+
if (lastRun) {
|
|
403
|
+
lastRunData = {
|
|
404
|
+
startedAt: lastRun.startedAt,
|
|
405
|
+
finishedAt: lastRun.finishedAt,
|
|
406
|
+
error: lastRun.error,
|
|
407
|
+
durationMs: lastRun.finishedAt ? lastRun.finishedAt.getTime() - lastRun.startedAt.getTime() : undefined,
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
let status = 'idle';
|
|
411
|
+
if (doc.lockedTill && doc.lockedTill > new Date()) {
|
|
412
|
+
status = 'locked';
|
|
413
|
+
// We can assume 'running' if locked, unless just failed/finished and lock not released yet?
|
|
414
|
+
// Actually 'lockedTill' is set during processing.
|
|
415
|
+
// If we want to distinguish 'running' from just 'locked', it's hard without another field.
|
|
416
|
+
// But 'locked' usually means running or zombie.
|
|
417
|
+
status = 'running';
|
|
418
|
+
}
|
|
419
|
+
else if (doc.runImmediately) {
|
|
420
|
+
status = 'scheduled';
|
|
421
|
+
}
|
|
422
|
+
else if (lastRun === null || lastRun === void 0 ? void 0 : lastRun.error) {
|
|
423
|
+
// Only if the LATEST run failed and we are not currently running
|
|
424
|
+
status = 'failed';
|
|
425
|
+
}
|
|
426
|
+
return {
|
|
427
|
+
_id: doc._id,
|
|
428
|
+
status,
|
|
429
|
+
nextRunAt: doc.runSince,
|
|
430
|
+
runImmediately: doc.runImmediately,
|
|
431
|
+
lockedTill: doc.lockedTill,
|
|
432
|
+
lastRun: lastRunData,
|
|
433
|
+
isRegistered: state.tasks.has(doc._id),
|
|
434
|
+
};
|
|
435
|
+
});
|
|
436
|
+
return {
|
|
437
|
+
items,
|
|
438
|
+
total,
|
|
439
|
+
limit,
|
|
440
|
+
offset: skip,
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Triggers a cron task immediately.
|
|
445
|
+
* Alias for scheduleCronTaskImmediately but returns the new state or confirmation.
|
|
446
|
+
*/
|
|
447
|
+
async function triggerCronTask(taskId) {
|
|
448
|
+
return scheduleCronTaskImmediately(taskId);
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Returns IDs of all registered cron tasks in this instance.
|
|
452
|
+
*/
|
|
453
|
+
function getRegisteredCronTaskIds() {
|
|
454
|
+
return Array.from(state.tasks.keys()).sort();
|
|
455
|
+
}
|
|
400
456
|
//# sourceMappingURL=cronTasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cronTasks.js","sourceRoot":"","sources":["../../../src/cronTasks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCollection.js","sourceRoot":"","sources":["../../../src/getCollection.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAoBb,oBAEC;AAID,sCAaC;AApCD,qDAAkD;AAIlD,IAAI,iBAA2C,CAAC;AAahD,SAAgB,IAAI,CAAC,OAAoB;IACrC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;AAClD,CAAC;AAED,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEzB,SAAgB,aAAa,CAAqB,IAAY;IAC1D,IAAI,CAAC;QACD,gBAAgB,EAAE,CAAC;QACnB,IAAI,iBAAiB,IAAI,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAyB,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,UAAU,EAAE,CAAC;gBACb,OAAO,UAAU,CAAC;YACtB,CAAC;QACL,CAAC;QACD,OAAO,IAAA,+BAAc,GAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAI,IAAI,CAAC,CAAC;IACrD,CAAC;YAAS,CAAC;QACP,gBAAgB,EAAE,CAAC;IACvB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMongoClient.js","sourceRoot":"","sources":["../../../src/getMongoClient.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,wCAKC;AAMD,oBAeC;AA9BD,qCAA0D;AAE1D,IAAI,mBAAgC,CAAC;AAErC,SAAgB,cAAc;IAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC/B,CAAC;AAMM,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC3C,IAAI,aAAa,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,eAAe,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC;IAC9C,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,mBAAmB,GAAG,IAAI,qBAAW,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1E,MAAM,mBAAmB,CAAC,OAAO,EAAE,CAAC;IACxC,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAChG,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* mongodash v2.1.0
|
|
3
|
+
* git+https://github.com/VaclavObornik/mongodash.git
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2025 Václav Oborník
|
|
6
|
+
* Released under the MIT license
|
|
7
|
+
*/
|
|
8
|
+
"use strict";
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
//# sourceMappingURL=globalsCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globalsCollection.js","sourceRoot":"","sources":["../../../src/globalsCollection.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* mongodash v2.1.0
|
|
3
|
+
* git+https://github.com/VaclavObornik/mongodash.git
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2025 Václav Oborník
|
|
6
|
+
* Released under the MIT license
|
|
7
|
+
*/
|
|
8
|
+
"use strict";
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.OperationalTaskController = exports.serveDashboard = exports.processInBatches = exports.retryReactiveTasks = exports.countReactiveTasks = exports.getReactiveTasks = exports.CODE_REACTIVE_TASK_LEADER_LOCK_LOST = exports.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_STOPPED = exports.CODE_REACTIVE_TASK_PLANNER_STARTED = exports.CODE_REACTIVE_TASK_FAILED = exports.CODE_REACTIVE_TASK_FINISHED = exports.CODE_REACTIVE_TASK_STARTED = exports._scheduler = exports.getPrometheusMetrics = exports.stopReactiveTasks = exports.startReactiveTasks = exports.TaskConditionFailedError = exports.reactiveTask = exports.registerPostCommitHook = exports.withTransaction = exports.LockAlreadyAcquiredError = exports.isLockAlreadyAcquiredError = exports.withLock = exports.getMongoClient = exports.getCollection = exports.triggerCronTask = exports.getCronTasksList = exports.CODE_CRON_TASK_FAILED = exports.CODE_CRON_TASK_SCHEDULED = exports.CODE_CRON_TASK_FINISHED = exports.CODE_CRON_TASK_STARTED = exports.stopCronTasks = exports.startCronTasks = exports.scheduleCronTaskImmediately = exports.runCronTask = exports.cronTask = void 0;
|
|
11
|
+
exports.init = init;
|
|
12
|
+
const cronTasks_1 = require("./cronTasks");
|
|
13
|
+
const reactiveTasks_1 = require("./reactiveTasks");
|
|
14
|
+
const getCollection_1 = require("./getCollection");
|
|
15
|
+
const getMongoClient_1 = require("./getMongoClient");
|
|
16
|
+
const OnError_1 = require("./OnError");
|
|
17
|
+
const OnInfo_1 = require("./OnInfo");
|
|
18
|
+
const withLock_1 = require("./withLock");
|
|
19
|
+
const withTransaction_1 = require("./withTransaction");
|
|
20
|
+
const initPromise_1 = require("./initPromise");
|
|
21
|
+
var cronTasks_2 = require("./cronTasks");
|
|
22
|
+
Object.defineProperty(exports, "cronTask", { enumerable: true, get: function () { return cronTasks_2.cronTask; } });
|
|
23
|
+
Object.defineProperty(exports, "runCronTask", { enumerable: true, get: function () { return cronTasks_2.runCronTask; } });
|
|
24
|
+
Object.defineProperty(exports, "scheduleCronTaskImmediately", { enumerable: true, get: function () { return cronTasks_2.scheduleCronTaskImmediately; } });
|
|
25
|
+
Object.defineProperty(exports, "startCronTasks", { enumerable: true, get: function () { return cronTasks_2.startCronTasks; } });
|
|
26
|
+
Object.defineProperty(exports, "stopCronTasks", { enumerable: true, get: function () { return cronTasks_2.stopCronTasks; } });
|
|
27
|
+
Object.defineProperty(exports, "CODE_CRON_TASK_STARTED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_STARTED; } });
|
|
28
|
+
Object.defineProperty(exports, "CODE_CRON_TASK_FINISHED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_FINISHED; } });
|
|
29
|
+
Object.defineProperty(exports, "CODE_CRON_TASK_SCHEDULED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_SCHEDULED; } });
|
|
30
|
+
Object.defineProperty(exports, "CODE_CRON_TASK_FAILED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_FAILED; } });
|
|
31
|
+
Object.defineProperty(exports, "getCronTasksList", { enumerable: true, get: function () { return cronTasks_2.getCronTasksList; } });
|
|
32
|
+
Object.defineProperty(exports, "triggerCronTask", { enumerable: true, get: function () { return cronTasks_2.triggerCronTask; } });
|
|
33
|
+
var getCollection_2 = require("./getCollection");
|
|
34
|
+
Object.defineProperty(exports, "getCollection", { enumerable: true, get: function () { return getCollection_2.getCollection; } });
|
|
35
|
+
var getMongoClient_2 = require("./getMongoClient");
|
|
36
|
+
Object.defineProperty(exports, "getMongoClient", { enumerable: true, get: function () { return getMongoClient_2.getMongoClient; } });
|
|
37
|
+
var withLock_2 = require("./withLock");
|
|
38
|
+
Object.defineProperty(exports, "withLock", { enumerable: true, get: function () { return withLock_2.withLock; } });
|
|
39
|
+
Object.defineProperty(exports, "isLockAlreadyAcquiredError", { enumerable: true, get: function () { return withLock_2.isLockAlreadyAcquiredError; } });
|
|
40
|
+
Object.defineProperty(exports, "LockAlreadyAcquiredError", { enumerable: true, get: function () { return withLock_2.LockAlreadyAcquiredError; } });
|
|
41
|
+
var withTransaction_2 = require("./withTransaction");
|
|
42
|
+
Object.defineProperty(exports, "withTransaction", { enumerable: true, get: function () { return withTransaction_2.withTransaction; } });
|
|
43
|
+
Object.defineProperty(exports, "registerPostCommitHook", { enumerable: true, get: function () { return withTransaction_2.registerPostCommitHook; } });
|
|
44
|
+
var reactiveTasks_2 = require("./reactiveTasks");
|
|
45
|
+
Object.defineProperty(exports, "reactiveTask", { enumerable: true, get: function () { return reactiveTasks_2.reactiveTask; } });
|
|
46
|
+
Object.defineProperty(exports, "TaskConditionFailedError", { enumerable: true, get: function () { return reactiveTasks_2.TaskConditionFailedError; } });
|
|
47
|
+
Object.defineProperty(exports, "startReactiveTasks", { enumerable: true, get: function () { return reactiveTasks_2.startReactiveTasks; } });
|
|
48
|
+
Object.defineProperty(exports, "stopReactiveTasks", { enumerable: true, get: function () { return reactiveTasks_2.stopReactiveTasks; } });
|
|
49
|
+
Object.defineProperty(exports, "getPrometheusMetrics", { enumerable: true, get: function () { return reactiveTasks_2.getPrometheusMetrics; } });
|
|
50
|
+
Object.defineProperty(exports, "_scheduler", { enumerable: true, get: function () { return reactiveTasks_2._scheduler; } });
|
|
51
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_STARTED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_STARTED; } });
|
|
52
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_FINISHED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_FINISHED; } });
|
|
53
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_FAILED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_FAILED; } });
|
|
54
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_STARTED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_STARTED; } });
|
|
55
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_STOPPED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_STOPPED; } });
|
|
56
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED; } });
|
|
57
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED; } });
|
|
58
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR; } });
|
|
59
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_LEADER_LOCK_LOST", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_LEADER_LOCK_LOST; } });
|
|
60
|
+
Object.defineProperty(exports, "getReactiveTasks", { enumerable: true, get: function () { return reactiveTasks_2.getReactiveTasks; } });
|
|
61
|
+
Object.defineProperty(exports, "countReactiveTasks", { enumerable: true, get: function () { return reactiveTasks_2.countReactiveTasks; } });
|
|
62
|
+
Object.defineProperty(exports, "retryReactiveTasks", { enumerable: true, get: function () { return reactiveTasks_2.retryReactiveTasks; } });
|
|
63
|
+
var processInBatches_1 = require("./processInBatches");
|
|
64
|
+
Object.defineProperty(exports, "processInBatches", { enumerable: true, get: function () { return processInBatches_1.processInBatches; } });
|
|
65
|
+
var task_management_1 = require("./task-management");
|
|
66
|
+
Object.defineProperty(exports, "serveDashboard", { enumerable: true, get: function () { return task_management_1.serveDashboard; } });
|
|
67
|
+
Object.defineProperty(exports, "OperationalTaskController", { enumerable: true, get: function () { return task_management_1.OperationalTaskController; } });
|
|
68
|
+
let initCalled = false;
|
|
69
|
+
async function init(options) {
|
|
70
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
71
|
+
if (initCalled) {
|
|
72
|
+
throw new Error('init method can be called only once.');
|
|
73
|
+
}
|
|
74
|
+
initCalled = true;
|
|
75
|
+
const onError = options.onError ? (0, OnError_1.secureOnError)(options.onError) : OnError_1.defaultOnError;
|
|
76
|
+
const onInfo = options.onInfo ? (0, OnInfo_1.secureOnInfo)(options.onInfo) : OnInfo_1.defaultOnInfo;
|
|
77
|
+
const taskCaller = options.taskCaller || ((task) => task());
|
|
78
|
+
await (0, getMongoClient_1.init)(options);
|
|
79
|
+
(0, getCollection_1.init)({ collectionFactory: (_a = options.collectionFactory) !== null && _a !== void 0 ? _a : null });
|
|
80
|
+
let globalsCollection;
|
|
81
|
+
if (!options.globalsCollection || typeof options.globalsCollection === 'string') {
|
|
82
|
+
globalsCollection = (0, getCollection_1.getCollection)((_b = options.globalsCollection) !== null && _b !== void 0 ? _b : '_mongodash_globals');
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
globalsCollection = options.globalsCollection;
|
|
86
|
+
}
|
|
87
|
+
(0, withLock_1.init)({ onError });
|
|
88
|
+
(0, withTransaction_1.init)({ onError, onInfo });
|
|
89
|
+
(0, cronTasks_1.init)({
|
|
90
|
+
runCronTasks: (_c = options.runCronTasks) !== null && _c !== void 0 ? _c : true,
|
|
91
|
+
cronExpressionParserOptions: (_d = options.cronExpressionParserOptions) !== null && _d !== void 0 ? _d : {},
|
|
92
|
+
onError,
|
|
93
|
+
onInfo,
|
|
94
|
+
cronTaskCaller: (_e = options.cronTaskCaller) !== null && _e !== void 0 ? _e : taskCaller,
|
|
95
|
+
cronTaskFilter: (_f = options.cronTaskFilter) !== null && _f !== void 0 ? _f : (() => true),
|
|
96
|
+
});
|
|
97
|
+
(0, reactiveTasks_1.init)(Object.assign(Object.assign({}, options), { globalsCollection: globalsCollection, onError,
|
|
98
|
+
onInfo, reactiveTaskCaller: (_g = options.reactiveTaskCaller) !== null && _g !== void 0 ? _g : taskCaller }));
|
|
99
|
+
(0, initPromise_1.resolveInitPromise)();
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**!
|
|
2
|
-
* mongodash v2.
|
|
3
|
-
* https://github.com/VaclavObornik/mongodash.git
|
|
2
|
+
* mongodash v2.1.0
|
|
3
|
+
* git+https://github.com/VaclavObornik/mongodash.git
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) 2025 Václav Oborník
|
|
6
6
|
* Released under the MIT license
|
|
@@ -12,6 +12,5 @@ let _resolve;
|
|
|
12
12
|
exports.initPromise = new Promise((resolve) => {
|
|
13
13
|
_resolve = resolve;
|
|
14
14
|
});
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
16
15
|
exports.resolveInitPromise = _resolve;
|
|
17
16
|
//# sourceMappingURL=initPromise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initPromise.js","sourceRoot":"","sources":["../../../src/initPromise.ts"],"names":[],"mappings":";;;AAAA,IAAI,QAAoB,CAAC;AACZ,QAAA,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;IACrD,QAAQ,GAAG,OAAO,CAAC;AACvB,CAAC,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,QAAS,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**!
|
|
2
|
+
* mongodash v2.1.0
|
|
3
|
+
* git+https://github.com/VaclavObornik/mongodash.git
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2025 Václav Oborník
|
|
6
|
+
* Released under the MIT license
|
|
7
|
+
*/
|
|
8
|
+
"use strict";
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
//# sourceMappingURL=mongoCompatibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongoCompatibility.js","sourceRoot":"","sources":["../../../src/mongoCompatibility.ts"],"names":[],"mappings":""}
|