@event-driven-io/emmett-postgresql 0.38.1 → 0.38.3

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/dist/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  var _dumbo = require('@event-driven-io/dumbo');
5
5
 
6
- // ../emmett/dist/chunk-SJ7ERGWB.js
6
+ // ../emmett/dist/chunk-O2VMBOV4.js
7
7
  var isNumber = (val) => typeof val === "number" && val === val;
8
8
  var isBigint = (val) => typeof val === "bigint" && val === val;
9
9
  var isString = (val) => typeof val === "string";
@@ -20,6 +20,15 @@ var EmmettError = class _EmmettError extends Error {
20
20
  this.errorCode = errorCode;
21
21
  Object.setPrototypeOf(this, _EmmettError.prototype);
22
22
  }
23
+ static mapFrom(error) {
24
+ if (error instanceof _EmmettError) {
25
+ return error;
26
+ }
27
+ return new _EmmettError({
28
+ errorCode: "errorCode" in error && error.errorCode !== void 0 && error.errorCode !== null ? error.errorCode : 500,
29
+ message: _nullishCoalesce(error.message, () => ( "An unknown error occurred"))
30
+ });
31
+ }
23
32
  };
24
33
  var ConcurrencyError = class _ConcurrencyError extends EmmettError {
25
34
  constructor(current, expected, message) {
@@ -139,6 +148,7 @@ var asyncRetry = async (fn, opts) => {
139
148
  } catch (error2) {
140
149
  if (_optionalChain([opts, 'optionalAccess', _15 => _15.shouldRetryError]) && !opts.shouldRetryError(error2)) {
141
150
  bail(error2);
151
+ return void 0;
142
152
  }
143
153
  throw error2;
144
154
  }
@@ -299,10 +309,12 @@ var NotifyAboutNoActiveReadersStream = (_class = class extends _webstreamspolyfi
299
309
  }
300
310
  }
301
311
  }, _class);
302
- var contextualGetCheckpoint = (context) => "getCheckpoint" in context && context.getCheckpoint && typeof context.getCheckpoint === "function" ? context.getCheckpoint : void 0;
303
- var getCheckpoint = (message2, context) => {
304
- const getCheckpoint2 = contextualGetCheckpoint(context);
305
- return getCheckpoint2 ? getCheckpoint2(message2) : "globalPosition" in message2.metadata && // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
312
+ var getCheckpoint = (message2) => {
313
+ return "checkpoint" in message2.metadata && // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
314
+ isBigint(message2.metadata.checkpoint) ? (
315
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
316
+ message2.metadata.checkpoint
317
+ ) : "globalPosition" in message2.metadata && // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
306
318
  isBigint(message2.metadata.globalPosition) ? (
307
319
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
308
320
  message2.metadata.globalPosition
@@ -312,6 +324,11 @@ var getCheckpoint = (message2, context) => {
312
324
  message2.metadata.streamPosition
313
325
  ) : null;
314
326
  };
327
+ var wasMessageHandled = (message2, checkpoint) => {
328
+ const messageCheckpoint = getCheckpoint(message2);
329
+ const checkpointBigint = checkpoint;
330
+ return messageCheckpoint !== null && messageCheckpoint !== void 0 && checkpointBigint !== null && checkpointBigint !== void 0 && messageCheckpoint <= checkpointBigint;
331
+ };
315
332
  var MessageProcessorType = {
316
333
  PROJECTOR: "projector",
317
334
  REACTOR: "reactor"
@@ -363,6 +380,7 @@ var reactor = (options) => {
363
380
  return await processingScope(async (context) => {
364
381
  let result = void 0;
365
382
  for (const message2 of messages) {
383
+ if (wasMessageHandled(message2, lastCheckpoint)) continue;
366
384
  const messageProcessingResult = await eachMessage(message2, context);
367
385
  if (checkpoints) {
368
386
  const storeCheckpointResult = await checkpoints.store(
@@ -371,12 +389,11 @@ var reactor = (options) => {
371
389
  version: options.version,
372
390
  message: message2,
373
391
  lastCheckpoint,
374
- partition: options.partition,
375
- getCheckpoint: contextualGetCheckpoint(context)
392
+ partition: options.partition
376
393
  },
377
394
  context
378
395
  );
379
- if (storeCheckpointResult && storeCheckpointResult.success) {
396
+ if (storeCheckpointResult.success) {
380
397
  lastCheckpoint = storeCheckpointResult.newCheckpoint;
381
398
  }
382
399
  }
@@ -1477,7 +1494,7 @@ var postgreSQLCheckpointer = () => ({
1477
1494
  return { lastCheckpoint: _optionalChain([result, 'optionalAccess', _48 => _48.lastProcessedPosition]) };
1478
1495
  },
1479
1496
  store: async (options, context) => {
1480
- const newPosition = getCheckpoint(options.message, options);
1497
+ const newPosition = getCheckpoint(options.message);
1481
1498
  const result = await storeProcessorCheckpoint(context.execute, {
1482
1499
  lastProcessedPosition: options.lastCheckpoint,
1483
1500
  newPosition,