squiss-ts 5.2.1 → 5.2.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/dist/Squiss.d.ts CHANGED
@@ -37,6 +37,7 @@ export declare class Squiss extends Squiss_base {
37
37
  start(): Promise<void>;
38
38
  stop(soft?: boolean, timeout?: number): Promise<boolean>;
39
39
  getS3(): S3;
40
+ private _drainDeleteQueue;
40
41
  private _initS3;
41
42
  private _initOpts;
42
43
  private _deleteMessages;
package/dist/Squiss.js CHANGED
@@ -79,9 +79,9 @@ class Squiss extends events_1.EventEmitter {
79
79
  return res.QueueUrl;
80
80
  });
81
81
  }
82
- deleteMessage(msg) {
82
+ async deleteMessage(msg) {
83
83
  if (!msg.raw) {
84
- return Promise.reject(new Error('Squiss.deleteMessage requires a Message object'));
84
+ throw new Error('Squiss.deleteMessage requires a Message object');
85
85
  }
86
86
  const promise = new Promise((resolve, reject) => {
87
87
  this._delQueue.set(msg.raw.MessageId, { msg, Id: msg.raw.MessageId, ReceiptHandle: msg.raw.ReceiptHandle, resolve, reject });
@@ -94,12 +94,12 @@ class Squiss extends events_1.EventEmitter {
94
94
  clearTimeout(this._delTimer);
95
95
  this._delTimer = undefined;
96
96
  }
97
- this._deleteXMessages(this._opts.deleteBatchSize);
97
+ await this._deleteXMessages(this._opts.deleteBatchSize);
98
98
  }
99
99
  else if (!this._delTimer) {
100
- this._delTimer = setTimeout(() => {
100
+ this._delTimer = setTimeout(async () => {
101
101
  this._delTimer = undefined;
102
- this._deleteXMessages();
102
+ await this._deleteXMessages();
103
103
  }, this._opts.deleteWaitMs);
104
104
  }
105
105
  return promise;
@@ -268,17 +268,18 @@ class Squiss extends events_1.EventEmitter {
268
268
  this._running = true;
269
269
  return this._startPoller();
270
270
  }
271
- stop(soft, timeout) {
271
+ async stop(soft, timeout) {
272
272
  if (!soft && this._activeReq) {
273
273
  this._activeReq.abort();
274
274
  }
275
275
  this._running = this._paused = false;
276
276
  if (!this._inFlight) {
277
- return Promise.resolve(true);
277
+ await this._drainDeleteQueue();
278
+ return true;
278
279
  }
279
280
  let resolved = false;
280
281
  let timer;
281
- return new Promise((resolve) => {
282
+ const result = await new Promise(async (resolve) => {
282
283
  this.on('drained', () => {
283
284
  if (!resolved) {
284
285
  resolved = true;
@@ -294,6 +295,8 @@ class Squiss extends events_1.EventEmitter {
294
295
  resolve(false);
295
296
  }, timeout) : undefined;
296
297
  });
298
+ await this._drainDeleteQueue();
299
+ return result;
297
300
  }
298
301
  getS3() {
299
302
  if (!this._s3) {
@@ -301,6 +304,13 @@ class Squiss extends events_1.EventEmitter {
301
304
  }
302
305
  return this._s3;
303
306
  }
307
+ async _drainDeleteQueue() {
308
+ if (this._delTimer) {
309
+ clearTimeout(this._delTimer);
310
+ this._delTimer = undefined;
311
+ }
312
+ await this._deleteXMessages();
313
+ }
304
314
  _initS3() {
305
315
  if (this._opts.S3) {
306
316
  if (typeof this._opts.S3 === 'function') {
@@ -446,7 +456,7 @@ class Squiss extends events_1.EventEmitter {
446
456
  this._getBatch(queueUrl);
447
457
  });
448
458
  }
449
- _deleteXMessages(x) {
459
+ async _deleteXMessages(x) {
450
460
  const delQueue = this._delQueue;
451
461
  const iterator = delQueue.entries();
452
462
  const delBatch = Array.from({ length: x || delQueue.size }, function () {
@@ -454,7 +464,7 @@ class Squiss extends events_1.EventEmitter {
454
464
  delQueue.delete(element[0]);
455
465
  return element[1];
456
466
  }, iterator);
457
- this._deleteMessages(delBatch);
467
+ await this._deleteMessages(delBatch);
458
468
  }
459
469
  _isLargeMessage(message, minSize) {
460
470
  const messageSize = (0, messageSizeUtils_1.getMessageSize)(message);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "squiss-ts",
3
- "version": "5.2.1",
3
+ "version": "5.2.2",
4
4
  "description": "High-volume SQS poller",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -48,9 +48,9 @@
48
48
  },
49
49
  "homepage": "https://github.com/PruvoNet/squiss-ts#readme",
50
50
  "dependencies": {
51
- "@aws-sdk/client-s3": "^3.359.0",
52
- "@aws-sdk/client-sqs": "^3.359.0",
53
- "@aws-sdk/types": "^3.357.0",
51
+ "@aws-sdk/client-s3": "^3.385.0",
52
+ "@aws-sdk/client-sqs": "^3.385.0",
53
+ "@aws-sdk/types": "^3.378.0",
54
54
  "linked-list": "2.1.0",
55
55
  "ts-type-guards": "^0.7.0",
56
56
  "uuid": "^9.0.0"
@@ -60,9 +60,9 @@
60
60
  "@types/chai": "^4.3.5",
61
61
  "@types/chai-as-promised": "^7.1.5",
62
62
  "@types/mocha": "^10.0.1",
63
- "@types/node": "^14.18.48",
63
+ "@types/node": "^16.18.39",
64
64
  "@types/proxyquire": "^1.3.28",
65
- "@types/uuid": "^9.0.1",
65
+ "@types/uuid": "^9.0.2",
66
66
  "chai": "^4.3.7",
67
67
  "chai-as-promised": "^7.1.1",
68
68
  "delay": "5.0.0",
@@ -70,12 +70,12 @@
70
70
  "mocha": "^10.2.0",
71
71
  "nyc": "^15.1.0",
72
72
  "proxyquire": "^2.1.3",
73
- "sinon": "^15.1.0",
73
+ "sinon": "^15.2.0",
74
74
  "sinon-chai": "^3.7.0",
75
75
  "source-map-support": "^0.5.21",
76
76
  "ts-node": "^10.9.1",
77
77
  "tslint": "^6.1.3",
78
- "typescript": "^5.1.3"
78
+ "typescript": "^5.1.6"
79
79
  },
80
80
  "nyc": {
81
81
  "extends": "@istanbuljs/nyc-config-typescript",
@@ -83,7 +83,8 @@
83
83
  "all": true,
84
84
  "exclude": [
85
85
  "src/test/**",
86
- "e2e**"
86
+ "e2e**",
87
+ "build**"
87
88
  ],
88
89
  "reporter": [
89
90
  "html",