mongodash 1.0.2 → 1.3.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/CHANGELOG.md CHANGED
@@ -1,3 +1,41 @@
1
+ # [1.3.0](https://github.com/VaclavObornik/mongodash/compare/v1.2.0...v1.3.0) (2021-12-15)
2
+
3
+
4
+ ### Features
5
+
6
+ * added duration to CRON info ([5d5ff8e](https://github.com/VaclavObornik/mongodash/commit/5d5ff8e4a625002eaf3d6ba55b63051999d12381))
7
+
8
+ # [1.2.0](https://github.com/VaclavObornik/mongodash/compare/v1.1.1...v1.2.0) (2021-12-15)
9
+
10
+
11
+ ### Features
12
+
13
+ * added onInfo option for convenient logging ([5f8c45a](https://github.com/VaclavObornik/mongodash/commit/5f8c45afcfbabb824310573d99231d42480a4ff5))
14
+ * typescript update ([37b466d](https://github.com/VaclavObornik/mongodash/commit/37b466db1f90d88d9f6f5aa40a616a26fb51a2ee))
15
+
16
+ ## [1.1.1](https://github.com/VaclavObornik/mongodash/compare/v1.1.0...v1.1.1) (2021-12-14)
17
+
18
+
19
+ ### Bug Fixes
20
+
21
+ * bump cron-parser from 3.5.0 to 4.2.0 ([0bb7e37](https://github.com/VaclavObornik/mongodash/commit/0bb7e37042d61c39e2d1287b9c4d6543b3f3827b))
22
+
23
+ # [1.1.0](https://github.com/VaclavObornik/mongodash/compare/v1.0.2...v1.1.0) (2021-12-13)
24
+
25
+
26
+ ### Features
27
+
28
+ * cron task registration can be called before monogdash.init ([181747d](https://github.com/VaclavObornik/mongodash/commit/181747ddd7a1dbba7671561bc3e49ae0eddb3ee0))
29
+ * isLockAlreadyAcquiredError function introduced ([2741bff](https://github.com/VaclavObornik/mongodash/commit/2741bffbfcc7858175fbff8ea62ffb0f42af4a86))
30
+ * WithLockOptions exported ([7a6443a](https://github.com/VaclavObornik/mongodash/commit/7a6443a568bffa60fff852bf1c072938bdf20481))
31
+
32
+ ## [1.0.2](https://github.com/VaclavObornik/mongodash/compare/v1.0.1...v1.0.2) (2021-12-06)
33
+
34
+
35
+ ### Bug Fixes
36
+
37
+ * type update update ([c56f973](https://github.com/VaclavObornik/mongodash/commit/c56f97325131b011aa7d0e7f1b95bf5ce3dbf527))
38
+
1
39
  ## [1.0.1](https://github.com/VaclavObornik/mongodash/compare/v1.0.0...v1.0.1) (2021-08-27)
2
40
 
3
41
 
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
@@ -7,4 +7,20 @@
7
7
  */
8
8
  "use strict";
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.secureOnError = exports.defaultOnError = void 0;
11
+ const defaultOnError = (error) => {
12
+ console.error(error);
13
+ };
14
+ exports.defaultOnError = defaultOnError;
15
+ function secureOnError(onError) {
16
+ return (error) => {
17
+ try {
18
+ onError(error);
19
+ }
20
+ catch (onErrorFailure) {
21
+ // intentionally suppress
22
+ }
23
+ };
24
+ }
25
+ exports.secureOnError = secureOnError;
10
26
  //# sourceMappingURL=OnError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OnError.js","sourceRoot":"","sources":["../../src/OnError.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"OnError.js","sourceRoot":"","sources":["../../src/OnError.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAAY,CAAC,KAAK,EAAE,EAAE;IAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB;AAEF,SAAgB,aAAa,CAAC,OAAgB;IAC1C,OAAO,CAAC,KAAK,EAAE,EAAE;QACb,IAAI;YACA,OAAO,CAAC,KAAK,CAAC,CAAC;SAClB;QAAC,OAAO,cAAc,EAAE;YACrB,yBAAyB;SAC5B;IACL,CAAC,CAAC;AACN,CAAC;AARD,sCAQC"}
@@ -0,0 +1,26 @@
1
+ /**!
2
+ * mongodash v1.3.0
3
+ * https://github.com/VaclavObornik/mongodash.git
4
+ *
5
+ * Copyright (c) 2021 Václav Oborník
6
+ * Released under the MIT license
7
+ */
8
+ "use strict";
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.secureOnInfo = exports.defaultOnInfo = void 0;
11
+ const defaultOnInfo = (info) => {
12
+ console.log(info.message);
13
+ };
14
+ exports.defaultOnInfo = defaultOnInfo;
15
+ function secureOnInfo(onInfo) {
16
+ return (info) => {
17
+ try {
18
+ onInfo(info);
19
+ }
20
+ catch (onErrorFailure) {
21
+ // intentionally suppress
22
+ }
23
+ };
24
+ }
25
+ exports.secureOnInfo = secureOnInfo;
26
+ //# sourceMappingURL=OnInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnInfo.js","sourceRoot":"","sources":["../../src/OnInfo.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAW,CAAC,IAAI,EAAE,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEF,SAAgB,YAAY,CAAC,MAAc;IACvC,OAAO,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI;YACA,MAAM,CAAC,IAAI,CAAC,CAAC;SAChB;QAAC,OAAO,cAAc,EAAE;YACrB,yBAAyB;SAC5B;IACL,CAAC,CAAC;AACN,CAAC;AARD,oCAQC"}
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
@@ -11,14 +11,14 @@ exports.createContinuousLock = void 0;
11
11
  function createContinuousLock(collection, documentId, lockProperty, lockTime, onError) {
12
12
  let taskInProgress = true;
13
13
  let prolongLockTimeoutId = null;
14
- let lastProlongPromise = Promise.resolve(); // all errors has to be suppressed
14
+ let lastProlongPromise = Promise.resolve(); // all errors have to be suppressed
15
15
  function scheduleLockProlong() {
16
16
  prolongLockTimeoutId = setTimeout(() => {
17
17
  prolongLockTimeoutId = null;
18
18
  lastProlongPromise = (async () => {
19
19
  try {
20
20
  // debug('performing lock prolong');
21
- await collection.updateOne({ _id: documentId }, { $set: { lockedTill: new Date(Date.now() + lockTime) } });
21
+ await collection.updateOne({ _id: documentId }, { $set: { [lockProperty]: new Date(Date.now() + lockTime) } });
22
22
  }
23
23
  catch (err) {
24
24
  // debug('Error during task prolong', err);
@@ -1 +1 @@
1
- {"version":3,"file":"createContinuousLock.js","sourceRoot":"","sources":["../../src/createContinuousLock.ts"],"names":[],"mappings":";;;AAOA,SAAgB,oBAAoB,CAChC,UAAoC,EACpC,UAAkB,EAClB,YAAoB,EACpB,QAAgB,EAChB,OAAgB;IAEhB,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,oBAAoB,GAAyC,IAAI,CAAC;IACtE,IAAI,kBAAkB,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,kCAAkC;IAEhG,SAAS,mBAAmB;QACxB,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,oBAAoB,GAAG,IAAI,CAAC;YAC5B,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC7B,IAAI;oBACA,oCAAoC;oBACpC,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;iBAC9G;gBAAC,OAAO,GAAG,EAAE;oBACV,2CAA2C;oBAC3C,OAAO,CAAC,GAAY,CAAC,CAAC;iBACzB;wBAAS;oBACN,IAAI,cAAc,EAAE;wBAChB,yCAAyC;wBACzC,mBAAmB,EAAE,CAAC;qBACzB;iBACJ;YACL,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,mBAAmB,EAAE,CAAC;IAEtB,0BAA0B;IAC1B,OAAO,KAAK,IAAI,EAAE;QACd,cAAc,GAAG,KAAK,CAAC,CAAC,0BAA0B;QAClD,IAAI,oBAAoB,EAAE;YACtB,YAAY,CAAC,oBAAoB,CAAC,CAAC;SACtC;QACD,MAAM,kBAAkB,CAAC;IAC7B,CAAC,CAAC;AACN,CAAC;AAzCD,oDAyCC"}
1
+ {"version":3,"file":"createContinuousLock.js","sourceRoot":"","sources":["../../src/createContinuousLock.ts"],"names":[],"mappings":";;;AAKA,SAAgB,oBAAoB,CAChC,UAAoC,EACpC,UAAkB,EAClB,YAAoB,EACpB,QAAgB,EAChB,OAAgB;IAEhB,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,oBAAoB,GAAyC,IAAI,CAAC;IACtE,IAAI,kBAAkB,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,mCAAmC;IAEjG,SAAS,mBAAmB;QACxB,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,oBAAoB,GAAG,IAAI,CAAC;YAC5B,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC7B,IAAI;oBACA,oCAAoC;oBACpC,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAS,CAAC,CAAC;iBAChI;gBAAC,OAAO,GAAG,EAAE;oBACV,2CAA2C;oBAC3C,OAAO,CAAC,GAAY,CAAC,CAAC;iBACzB;wBAAS;oBACN,IAAI,cAAc,EAAE;wBAChB,yCAAyC;wBACzC,mBAAmB,EAAE,CAAC;qBACzB;iBACJ;YACL,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,mBAAmB,EAAE,CAAC;IAEtB,0BAA0B;IAC1B,OAAO,KAAK,IAAI,EAAE;QACd,cAAc,GAAG,KAAK,CAAC,CAAC,0BAA0B;QAClD,IAAI,oBAAoB,EAAE;YACtB,YAAY,CAAC,oBAAoB,CAAC,CAAC;SACtC;QACD,MAAM,kBAAkB,CAAC;IAC7B,CAAC,CAAC;AACN,CAAC;AAzCD,oDAyCC"}
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
@@ -7,12 +7,17 @@
7
7
  */
8
8
  "use strict";
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.cronTask = exports.scheduleCronTaskImmediately = exports.startCronTasks = exports.stopCronTasks = exports.init = exports.runCronTask = void 0;
10
+ exports.cronTask = exports.scheduleCronTaskImmediately = exports.startCronTasks = exports.stopCronTasks = exports.init = exports.runCronTask = exports.CODE_CRON_TASK_FAILED = exports.CODE_CRON_TASK_SCHEDULED = exports.CODE_CRON_TASK_FINISHED = exports.CODE_CRON_TASK_STARTED = void 0;
11
11
  // import * as _debug from 'debug';
12
12
  const cron_parser_1 = require("cron-parser");
13
13
  const parse_duration_1 = require("parse-duration");
14
14
  const createContinuousLock_1 = require("./createContinuousLock");
15
15
  const getCollection_1 = require("./getCollection");
16
+ const initPromise_1 = require("./initPromise");
17
+ exports.CODE_CRON_TASK_STARTED = 'cronTaskStarted';
18
+ exports.CODE_CRON_TASK_FINISHED = 'cronTaskFinished';
19
+ exports.CODE_CRON_TASK_SCHEDULED = 'cronTaskScheduled';
20
+ exports.CODE_CRON_TASK_FAILED = 'cronTaskFailed';
16
21
  class TaskDocument {
17
22
  constructor(_id, runSince) {
18
23
  this._id = _id;
@@ -40,6 +45,7 @@ const state = {
40
45
  cronExpressionParserOptions: {},
41
46
  };
42
47
  let _onError;
48
+ let _onInfo;
43
49
  function dateInMillis(milliseconds) {
44
50
  return new Date(Date.now() + milliseconds);
45
51
  }
@@ -71,8 +77,8 @@ function createIntervalFunctionFromScalar(interval) {
71
77
  }
72
78
  return () => dateInMillis(duration);
73
79
  }
74
- async function getNextRunDate(interval) {
75
- const maybeDate = await interval();
80
+ async function getNextRunDate(intervalFunction) {
81
+ const maybeDate = await intervalFunction();
76
82
  if (maybeDate instanceof Date) {
77
83
  return maybeDate;
78
84
  }
@@ -167,19 +173,28 @@ async function findATaskToRun(enforcedTask) {
167
173
  async function processTask(task, enforcedTask) {
168
174
  // debug(`processing task ${task.taskId}`);
169
175
  let taskError = null;
176
+ let nextRunDate;
177
+ let nextRunScheduled = false;
170
178
  // todo solve the "any"
171
179
  const stopContinuousLock = (0, createContinuousLock_1.createContinuousLock)(state.collection, task.taskId, 'lockedTill', lockTime, _onError);
180
+ const start = new Date();
172
181
  try {
173
182
  await (function mongoDashRunTaskNotCyclic() {
183
+ _onInfo({ message: `Cron task '${task.taskId}' started.`, taskId: task.taskId, code: exports.CODE_CRON_TASK_STARTED });
174
184
  return task.task();
175
185
  })();
186
+ const duration = Date.now() - start.getTime();
187
+ _onInfo({ message: `Cron task '${task.taskId}' finished in ${duration}ms.`, taskId: task.taskId, code: exports.CODE_CRON_TASK_FINISHED, duration });
176
188
  }
177
189
  catch (err) {
190
+ const duration = Date.now() - start.getTime();
191
+ const reason = err instanceof Error ? err.message : `${err}`;
192
+ _onInfo({ message: `Cron task '${task.taskId}' failed in ${duration}ms.`, taskId: task.taskId, code: exports.CODE_CRON_TASK_FAILED, reason, duration });
178
193
  taskError = err;
179
194
  }
180
195
  try {
181
196
  await stopContinuousLock(); // to avoid possibility of lock after the following document update
182
- const nextRunDate = await getNextRunDate(task.interval);
197
+ nextRunDate = await getNextRunDate(task.intervalFunction);
183
198
  // debug(`scheduling task ${task.taskId} to run in ${nextRunDate.getTime() - Date.now()}ms`);
184
199
  await state.collection.updateOne({ _id: task.taskId }, {
185
200
  $set: {
@@ -189,6 +204,7 @@ async function processTask(task, enforcedTask) {
189
204
  'runLog.0.finishedAt': new Date(),
190
205
  },
191
206
  });
207
+ nextRunScheduled = true;
192
208
  }
193
209
  finally {
194
210
  if (enforcedTask) {
@@ -202,6 +218,15 @@ async function processTask(task, enforcedTask) {
202
218
  else if (taskError) {
203
219
  _onError(taskError);
204
220
  }
221
+ // we want to inform about the scheduling after the
222
+ if (nextRunScheduled) {
223
+ _onInfo({
224
+ message: `Cron task '${task.taskId}' scheduled to ${nextRunDate.toISOString()}.`,
225
+ taskId: task.taskId,
226
+ code: exports.CODE_CRON_TASK_SCHEDULED,
227
+ nextRunDate: new Date(nextRunDate.toISOString()),
228
+ });
229
+ }
205
230
  }
206
231
  }
207
232
  /** can never throw */
@@ -226,6 +251,7 @@ function runATask() {
226
251
  // debug('runATask called');
227
252
  state.working = true;
228
253
  (async () => {
254
+ await initPromise_1.initPromise;
229
255
  const enforcedTask = state.enforcedTasks.shift() || null; // there can be no enforced task
230
256
  let task = null;
231
257
  const countOfTasks = state.tasks.size;
@@ -275,12 +301,13 @@ function runATask() {
275
301
  }
276
302
  })();
277
303
  }
278
- function init({ runCronTasks, cronExpressionParserOptions, onError }) {
304
+ function init({ runCronTasks, cronExpressionParserOptions, onError, onInfo }) {
279
305
  if (cronExpressionParserOptions.endDate) {
280
306
  throw new Error("The 'endDate' parameter of the cron-parser package is not supported yet.");
281
307
  }
282
308
  state.shouldRun = runCronTasks;
283
309
  _onError = onError;
310
+ _onInfo = onInfo;
284
311
  state.cronExpressionParserOptions = cronExpressionParserOptions;
285
312
  }
286
313
  exports.init = init;
@@ -322,6 +349,7 @@ async function scheduleCronTaskImmediately(taskId) {
322
349
  }
323
350
  exports.scheduleCronTaskImmediately = scheduleCronTaskImmediately;
324
351
  async function cronTask(taskId, interval, task) {
352
+ await initPromise_1.initPromise;
325
353
  if (state.tasks.has(taskId)) {
326
354
  throw new Error(`The taskId '${taskId}' is already used.`);
327
355
  }
@@ -332,7 +360,7 @@ async function cronTask(taskId, interval, task) {
332
360
  state.tasks.set(taskId, {
333
361
  taskId,
334
362
  task,
335
- interval: intervalFunction,
363
+ intervalFunction,
336
364
  });
337
365
  // debug(`task ${taskId} has been registered`);
338
366
  await ensureIndex();
@@ -1 +1 @@
1
- {"version":3,"file":"cronTasks.js","sourceRoot":"","sources":["../../src/cronTasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cronTasks.js","sourceRoot":"","sources":["../../src/cronTasks.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
package/dist/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
@@ -7,52 +7,53 @@
7
7
  */
8
8
  "use strict";
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.init = exports.withTransaction = exports.withLock = exports.getMongoClient = exports.getCollection = exports.stopCronTasks = exports.startCronTasks = exports.scheduleCronTaskImmediately = exports.runCronTask = exports.cronTask = void 0;
10
+ exports.init = exports.withTransaction = exports.LockAlreadyAcquiredError = exports.isLockAlreadyAcquiredError = exports.withLock = exports.getMongoClient = exports.getCollection = 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
11
  const cronTasks_1 = require("./cronTasks");
12
12
  const getCollection_1 = require("./getCollection");
13
13
  const getMongoClient_1 = require("./getMongoClient");
14
+ const OnError_1 = require("./OnError");
15
+ const OnInfo_1 = require("./OnInfo");
14
16
  const withLock_1 = require("./withLock");
17
+ const initPromise_1 = require("./initPromise");
15
18
  var cronTasks_2 = require("./cronTasks");
16
19
  Object.defineProperty(exports, "cronTask", { enumerable: true, get: function () { return cronTasks_2.cronTask; } });
17
20
  Object.defineProperty(exports, "runCronTask", { enumerable: true, get: function () { return cronTasks_2.runCronTask; } });
18
21
  Object.defineProperty(exports, "scheduleCronTaskImmediately", { enumerable: true, get: function () { return cronTasks_2.scheduleCronTaskImmediately; } });
19
22
  Object.defineProperty(exports, "startCronTasks", { enumerable: true, get: function () { return cronTasks_2.startCronTasks; } });
20
23
  Object.defineProperty(exports, "stopCronTasks", { enumerable: true, get: function () { return cronTasks_2.stopCronTasks; } });
24
+ Object.defineProperty(exports, "CODE_CRON_TASK_STARTED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_STARTED; } });
25
+ Object.defineProperty(exports, "CODE_CRON_TASK_FINISHED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_FINISHED; } });
26
+ Object.defineProperty(exports, "CODE_CRON_TASK_SCHEDULED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_SCHEDULED; } });
27
+ Object.defineProperty(exports, "CODE_CRON_TASK_FAILED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_FAILED; } });
21
28
  var getCollection_2 = require("./getCollection");
22
29
  Object.defineProperty(exports, "getCollection", { enumerable: true, get: function () { return getCollection_2.getCollection; } });
23
30
  var getMongoClient_2 = require("./getMongoClient");
24
31
  Object.defineProperty(exports, "getMongoClient", { enumerable: true, get: function () { return getMongoClient_2.getMongoClient; } });
25
32
  var withLock_2 = require("./withLock");
26
33
  Object.defineProperty(exports, "withLock", { enumerable: true, get: function () { return withLock_2.withLock; } });
34
+ Object.defineProperty(exports, "isLockAlreadyAcquiredError", { enumerable: true, get: function () { return withLock_2.isLockAlreadyAcquiredError; } });
35
+ Object.defineProperty(exports, "LockAlreadyAcquiredError", { enumerable: true, get: function () { return withLock_2.LockAlreadyAcquiredError; } });
27
36
  var withTransaction_1 = require("./withTransaction");
28
37
  Object.defineProperty(exports, "withTransaction", { enumerable: true, get: function () { return withTransaction_1.withTransaction; } });
29
38
  let initCalled = false;
30
- const defaultOnError = (error) => {
31
- console.error(error);
32
- };
33
39
  async function init(options) {
34
- var _a, _b, _c, _d, _e;
40
+ var _a, _b, _c, _d;
35
41
  if (initCalled) {
36
42
  throw new Error('init method can be called only once.');
37
43
  }
38
44
  initCalled = true;
39
- const _onError = (_a = options.onError) !== null && _a !== void 0 ? _a : defaultOnError;
40
- const onError = (error) => {
41
- try {
42
- _onError(error);
43
- }
44
- catch (onErrorFailure) {
45
- // intentionally suppress
46
- }
47
- };
48
- (0, getCollection_1.init)({ collectionFactory: (_b = options.collectionFactory) !== null && _b !== void 0 ? _b : null });
45
+ const onError = options.onError ? (0, OnError_1.secureOnError)(options.onError) : OnError_1.defaultOnError;
46
+ const onInfo = options.onInfo ? (0, OnInfo_1.secureOnInfo)(options.onInfo) : OnInfo_1.defaultOnInfo;
47
+ (0, getCollection_1.init)({ collectionFactory: (_a = options.collectionFactory) !== null && _a !== void 0 ? _a : null });
49
48
  (0, withLock_1.init)({ onError });
50
49
  (0, cronTasks_1.init)({
51
- runCronTasks: (_c = options.runCronTasks) !== null && _c !== void 0 ? _c : true,
52
- cronExpressionParserOptions: (_d = options.cronExpressionParserOptions) !== null && _d !== void 0 ? _d : {},
50
+ runCronTasks: (_b = options.runCronTasks) !== null && _b !== void 0 ? _b : true,
51
+ cronExpressionParserOptions: (_c = options.cronExpressionParserOptions) !== null && _c !== void 0 ? _c : {},
53
52
  onError,
53
+ onInfo,
54
54
  });
55
- await (0, getMongoClient_1.init)(Object.assign(Object.assign({}, options), { autoConnect: (_e = options.autoConnect) !== null && _e !== void 0 ? _e : true }));
55
+ await (0, getMongoClient_1.init)(Object.assign(Object.assign({}, options), { autoConnect: (_d = options.autoConnect) !== null && _d !== void 0 ? _d : true }));
56
+ initPromise_1.resolver.resolve();
56
57
  }
57
58
  exports.init = init;
58
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyF;AACzF,mDAAqG;AACrG,qDAAqG;AAErG,yCAAkD;AAClD,yCAAgJ;AAAvI,qGAAA,QAAQ,OAAA;AAAY,wGAAA,WAAW,OAAA;AAAE,wHAAA,2BAA2B,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,0GAAA,aAAa,OAAA;AACpG,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,IAAI,UAAU,GAAG,KAAK,CAAC;AAIvB,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,EAAE;IACpC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC;AAEK,KAAK,UAAU,IAAI,CAAC,OAAoB;;IAC3C,IAAI,UAAU,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;KAC3D;IACD,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,cAAc,CAAC;IACnD,MAAM,OAAO,GAAY,CAAC,KAAK,EAAE,EAAE;QAC/B,IAAI;YACA,QAAQ,CAAC,KAAK,CAAC,CAAC;SACnB;QAAC,OAAO,cAAc,EAAE;YACrB,yBAAyB;SAC5B;IACL,CAAC,CAAC;IAEF,IAAA,oBAAiB,EAAC,EAAE,iBAAiB,EAAE,MAAA,OAAO,CAAC,iBAAiB,mCAAI,IAAI,EAAE,CAAC,CAAC;IAE5E,IAAA,eAAY,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1B,IAAA,gBAAa,EAAC;QACV,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,IAAI;QAC1C,2BAA2B,EAAE,MAAA,OAAO,CAAC,2BAA2B,mCAAI,EAAE;QACtE,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,IAAA,qBAAe,kCACd,OAAO,KACV,WAAW,EAAE,MAAA,OAAO,CAAC,WAAW,mCAAI,IAAI,IAC1C,CAAC;AACP,CAAC;AA7BD,oBA6BC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyF;AACzF,mDAAqG;AACrG,qDAAqG;AACrG,uCAAmE;AACnE,qCAA+D;AAC/D,yCAAkD;AAClD,+CAAyC;AACzC,yCAaqB;AAZjB,qGAAA,QAAQ,OAAA;AAER,wGAAA,WAAW,OAAA;AACX,wHAAA,2BAA2B,OAAA;AAC3B,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AAGb,mHAAA,sBAAsB,OAAA;AACtB,oHAAA,uBAAuB,OAAA;AACvB,qHAAA,wBAAwB,OAAA;AACxB,kHAAA,qBAAqB,OAAA;AAEzB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,uCAA6G;AAApG,oGAAA,QAAQ,OAAA;AAAE,sHAAA,0BAA0B,OAAA;AAAmB,oHAAA,wBAAwB,OAAA;AACxF,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,IAAI,UAAU,GAAG,KAAK,CAAC;AAShB,KAAK,UAAU,IAAI,CAAC,OAAoB;;IAC3C,IAAI,UAAU,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;KAC3D;IACD,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,uBAAa,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAc,CAAC;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAa,CAAC;IAE7E,IAAA,oBAAiB,EAAC,EAAE,iBAAiB,EAAE,MAAA,OAAO,CAAC,iBAAiB,mCAAI,IAAI,EAAE,CAAC,CAAC;IAE5E,IAAA,eAAY,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1B,IAAA,gBAAa,EAAC;QACV,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,IAAI;QAC1C,2BAA2B,EAAE,MAAA,OAAO,CAAC,2BAA2B,mCAAI,EAAE;QACtE,OAAO;QACP,MAAM;KACT,CAAC,CAAC;IAEH,MAAM,IAAA,qBAAe,kCACd,OAAO,KACV,WAAW,EAAE,MAAA,OAAO,CAAC,WAAW,mCAAI,IAAI,IAC1C,CAAC;IAEH,sBAAQ,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC;AA1BD,oBA0BC"}
@@ -0,0 +1,17 @@
1
+ /**!
2
+ * mongodash v1.3.0
3
+ * https://github.com/VaclavObornik/mongodash.git
4
+ *
5
+ * Copyright (c) 2021 Václav Oborník
6
+ * Released under the MIT license
7
+ */
8
+ "use strict";
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.initPromise = exports.resolver = void 0;
11
+ exports.resolver = {
12
+ resolve: null,
13
+ };
14
+ exports.initPromise = new Promise((resolve) => {
15
+ exports.resolver.resolve = resolve;
16
+ });
17
+ //# sourceMappingURL=initPromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initPromise.js","sourceRoot":"","sources":["../../src/initPromise.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG;IACpB,OAAO,EAAE,IAA6B;CACzC,CAAC;AAEW,QAAA,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;IACrD,gBAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
@@ -7,7 +7,7 @@
7
7
  */
8
8
  'use strict';
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.withLock = exports.init = void 0;
10
+ exports.withLock = exports.isLockAlreadyAcquiredError = exports.LockAlreadyAcquiredError = exports.init = void 0;
11
11
  // import * as _debug from 'debug';
12
12
  const mongodb_1 = require("mongodb");
13
13
  const createContinuousLock_1 = require("./createContinuousLock");
@@ -32,6 +32,21 @@ async function getLockerCollection() {
32
32
  }
33
33
  return collectionPromise;
34
34
  }
35
+ class LockAlreadyAcquiredError extends Error {
36
+ constructor(key) {
37
+ super(lockAcquiredMessage);
38
+ this.key = key;
39
+ }
40
+ }
41
+ exports.LockAlreadyAcquiredError = LockAlreadyAcquiredError;
42
+ function isLockAlreadyAcquiredError(err, key) {
43
+ const rightError = err instanceof LockAlreadyAcquiredError;
44
+ if (!rightError) {
45
+ return false;
46
+ }
47
+ return key ? err.key === key : true;
48
+ }
49
+ exports.isLockAlreadyAcquiredError = isLockAlreadyAcquiredError;
35
50
  async function withLock(key, callback, { maxWaitForLock = 3 * 1000, startingDelay = 50, expireIn = 15 * 1000 } = {}) {
36
51
  const lockId = new mongodb_1.ObjectId();
37
52
  const stringKey = `${key}`;
@@ -50,7 +65,7 @@ async function withLock(key, callback, { maxWaitForLock = 3 * 1000, startingDela
50
65
  }
51
66
  catch (err) {
52
67
  if ([11000, 11001].includes(err.code)) {
53
- throw new Error(lockAcquiredMessage);
68
+ throw new LockAlreadyAcquiredError(key);
54
69
  }
55
70
  await releaseLock(); // the lock could be possible acquired
56
71
  throw err;
@@ -78,7 +93,7 @@ async function withLock(key, callback, { maxWaitForLock = 3 * 1000, startingDela
78
93
  nextTime = ultimateAttemptStart;
79
94
  }
80
95
  // debug(`wait time ${waitTime} for ${n}`);
81
- if (err.message === lockAcquiredMessage && nextTime <= ultimateAttemptStart) {
96
+ if (isLockAlreadyAcquiredError(err, key) && nextTime <= ultimateAttemptStart) {
82
97
  await new Promise((resolve) => setTimeout(resolve, waitTime));
83
98
  }
84
99
  else {
@@ -86,7 +101,6 @@ async function withLock(key, callback, { maxWaitForLock = 3 * 1000, startingDela
86
101
  }
87
102
  }
88
103
  }
89
- // todo solve the "any"
90
104
  const stopContinuousLock = (0, createContinuousLock_1.createContinuousLock)(collection, stringKey, expirationKey, expireIn, onError);
91
105
  const cleanUp = () => Promise.all([stopContinuousLock(), releaseLock()]);
92
106
  let value;
@@ -1 +1 @@
1
- {"version":3,"file":"withLock.js","sourceRoot":"","sources":["../../src/withLock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withLock.js","sourceRoot":"","sources":["../../src/withLock.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * mongodash v1.0.2
2
+ * mongodash v1.3.0
3
3
  * https://github.com/VaclavObornik/mongodash.git
4
4
  *
5
5
  * Copyright (c) 2021 Václav Oborník
@@ -1 +1,3 @@
1
1
  export declare type OnError = (error: Error) => void;
2
+ export declare const defaultOnError: OnError;
3
+ export declare function secureOnError(onError: OnError): OnError;
@@ -0,0 +1,6 @@
1
+ export declare type OnInfo = (info: {
2
+ message: string;
3
+ code: string;
4
+ } & Record<string, string | number | Date>) => void;
5
+ export declare const defaultOnInfo: OnInfo;
6
+ export declare function secureOnInfo(onInfo: OnInfo): OnInfo;
@@ -1,8 +1,7 @@
1
1
  import { Collection } from 'mongodb';
2
2
  import { OnError } from './OnError';
3
3
  declare type StopContinuousLock = () => Promise<void>;
4
- declare type ObjectWithId = {
5
- _id: unknown;
6
- };
7
- export declare function createContinuousLock(collection: Collection<ObjectWithId>, documentId: string, lockProperty: string, lockTime: number, onError: OnError): StopContinuousLock;
4
+ export declare function createContinuousLock<DocumentType extends {
5
+ _id: string;
6
+ }>(collection: Collection<DocumentType>, documentId: string, lockProperty: string, lockTime: number, onError: OnError): StopContinuousLock;
8
7
  export {};
@@ -1,5 +1,10 @@
1
1
  import { ParserOptions as CronExpressionParserOptions } from 'cron-parser';
2
2
  import { OnError } from './OnError';
3
+ import { OnInfo } from './OnInfo';
4
+ export declare const CODE_CRON_TASK_STARTED = "cronTaskStarted";
5
+ export declare const CODE_CRON_TASK_FINISHED = "cronTaskFinished";
6
+ export declare const CODE_CRON_TASK_SCHEDULED = "cronTaskScheduled";
7
+ export declare const CODE_CRON_TASK_FAILED = "cronTaskFailed";
3
8
  export declare type TaskFunction = () => Promise<unknown> | void;
4
9
  export declare type ScalarInterval = number | string;
5
10
  export declare type StaticInterval = ScalarInterval | Date;
@@ -11,8 +16,9 @@ export declare type InitOptions = {
11
16
  runCronTasks: boolean;
12
17
  cronExpressionParserOptions: CronExpressionParserOptions;
13
18
  onError: OnError;
19
+ onInfo: OnInfo;
14
20
  };
15
- export declare function init({ runCronTasks, cronExpressionParserOptions, onError }: InitOptions): void;
21
+ export declare function init({ runCronTasks, cronExpressionParserOptions, onError, onInfo }: InitOptions): void;
16
22
  export declare function stopCronTasks(): void;
17
23
  export declare function startCronTasks(): void;
18
24
  export declare function scheduleCronTaskImmediately(taskId: TaskId): Promise<void>;
@@ -8,7 +8,7 @@ declare type ReadyClientOptions = CommonOptions & {
8
8
  };
9
9
  declare type UriOptions = CommonOptions & {
10
10
  uri: string;
11
- clientOptions: MongoClientOptions;
11
+ clientOptions?: MongoClientOptions;
12
12
  };
13
13
  export declare type InitOptions = ReadyClientOptions | UriOptions;
14
14
  export declare function init(options: InitOptions): Promise<void>;
@@ -1,11 +1,17 @@
1
1
  import { InitOptions as CronTasksInitOptions } from './cronTasks';
2
2
  import { InitOptions as GetCollectionInitOptions } from './getCollection';
3
3
  import { InitOptions as GetMongoClientInitOptions } from './getMongoClient';
4
- export { cronTask, Interval, runCronTask, scheduleCronTaskImmediately, startCronTasks, stopCronTasks, TaskFunction, TaskId } from './cronTasks';
4
+ import { OnError } from './OnError';
5
+ import { OnInfo } from './OnInfo';
6
+ export { cronTask, Interval, runCronTask, scheduleCronTaskImmediately, startCronTasks, stopCronTasks, TaskFunction, TaskId, CODE_CRON_TASK_STARTED, CODE_CRON_TASK_FINISHED, CODE_CRON_TASK_SCHEDULED, CODE_CRON_TASK_FAILED, } from './cronTasks';
5
7
  export { getCollection } from './getCollection';
6
8
  export { getMongoClient } from './getMongoClient';
7
9
  export { OnError } from './OnError';
8
- export { withLock } from './withLock';
10
+ export { withLock, isLockAlreadyAcquiredError, WithLockOptions, LockAlreadyAcquiredError } from './withLock';
9
11
  export { withTransaction } from './withTransaction';
10
- export declare type InitOptions = GetMongoClientInitOptions & Partial<CronTasksInitOptions> & Partial<GetCollectionInitOptions>;
12
+ declare type PackageOptions = {
13
+ onError?: OnError;
14
+ onInfo?: OnInfo;
15
+ };
16
+ export declare type InitOptions = PackageOptions & GetMongoClientInitOptions & Partial<CronTasksInitOptions> & Partial<GetCollectionInitOptions>;
11
17
  export declare function init(options: InitOptions): Promise<void>;
@@ -0,0 +1,4 @@
1
+ export declare const resolver: {
2
+ resolve: () => void;
3
+ };
4
+ export declare const initPromise: Promise<void>;
@@ -5,9 +5,14 @@ export declare function init(options: {
5
5
  }): void;
6
6
  export declare type LockKey = string | number | ObjectId;
7
7
  export declare type LockCallback<T> = () => Promise<T>;
8
- export declare type LockerOptions = {
8
+ export declare type WithLockOptions = {
9
9
  maxWaitForLock?: number;
10
10
  startingDelay?: number;
11
11
  expireIn?: number;
12
12
  };
13
- export declare function withLock<T>(key: LockKey, callback: LockCallback<T>, { maxWaitForLock, startingDelay, expireIn }?: LockerOptions): Promise<T>;
13
+ export declare class LockAlreadyAcquiredError extends Error {
14
+ readonly key: LockKey;
15
+ constructor(key: LockKey);
16
+ }
17
+ export declare function isLockAlreadyAcquiredError(err: unknown, key?: LockKey): boolean;
18
+ export declare function withLock<T>(key: LockKey, callback: LockCallback<T>, { maxWaitForLock, startingDelay, expireIn }?: WithLockOptions): Promise<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodash",
3
- "version": "1.0.2",
3
+ "version": "1.3.0",
4
4
  "description": "An utility library delivering super-useful and super-simple tools using MongoDB",
5
5
  "main": "./dist/lib/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -15,6 +15,9 @@
15
15
  "build": "tsc",
16
16
  "dev": "tsc --watch",
17
17
  "test": "run-p test:lint test:coverage --aggregate-output",
18
+ "test:ts": "run-p test:ts:*",
19
+ "test:ts:src": "tsc --noEmit",
20
+ "test:ts:test": "cd test && tsc --noEmit",
18
21
  "test:lint": "eslint ./src/**/*.ts ./test/**/*.ts",
19
22
  "test:simple": "jest --runInBand --forceExit",
20
23
  "test:coverage": "jest --coverage --runInBand --forceExit",
@@ -30,7 +33,7 @@
30
33
  "init": "ts-node tools/init.ts"
31
34
  },
32
35
  "dependencies": {
33
- "cron-parser": "^3.5.0",
36
+ "cron-parser": "^4.2.0",
34
37
  "debug": "^4.3.2",
35
38
  "parse-duration": "^1.0.0"
36
39
  },
@@ -56,23 +59,23 @@
56
59
  "eslint": "^7.32.0",
57
60
  "eslint-config-prettier": "^8.3.0",
58
61
  "eslint-plugin-no-only-tests": "^2.6.0",
59
- "eslint-plugin-prettier": "^3.4.1",
62
+ "eslint-plugin-prettier": "^4.0.0",
60
63
  "husky": "^7.0.2",
61
64
  "jest": "^27.1.0",
62
65
  "jest-config": "^27.1.0",
63
66
  "jest-transform-stub": "^2.0.0",
64
67
  "lint-staged": "^11.1.2",
65
68
  "lodash": "^4.17.21",
66
- "mongodb": "^4.1.1",
69
+ "mongodb": "^4.2.2",
67
70
  "npm-run-all": "^4.1.5",
68
- "organize-imports-cli": "^0.8.0",
71
+ "organize-imports-cli": "^0.9.0",
69
72
  "prettier": "^2.3.2",
70
73
  "rimraf": "^3.0.2",
71
74
  "semantic-release": "^17.4.7",
72
75
  "sinon": "^11.1.2",
73
76
  "ts-jest": "^27.0.5",
74
77
  "ts-node": "^10.2.1",
75
- "typescript": "^4.4.2"
78
+ "typescript": "^4.5.4"
76
79
  },
77
80
  "keywords": [
78
81
  "mongodb",