squiss-ts 5.2.0 → 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 +1 -0
- package/dist/Squiss.js +26 -14
- package/package.json +10 -9
package/dist/Squiss.d.ts
CHANGED
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
|
-
|
|
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;
|
|
@@ -194,7 +194,10 @@ class Squiss extends events_1.EventEmitter {
|
|
|
194
194
|
this._inFlight--;
|
|
195
195
|
if (this._paused && this._slotsAvailable()) {
|
|
196
196
|
this._paused = false;
|
|
197
|
-
this._startPoller()
|
|
197
|
+
this._startPoller()
|
|
198
|
+
.catch((e) => {
|
|
199
|
+
this.emit('error', e);
|
|
200
|
+
});
|
|
198
201
|
}
|
|
199
202
|
msg.emit('handled');
|
|
200
203
|
this.emit('handled', msg);
|
|
@@ -265,17 +268,18 @@ class Squiss extends events_1.EventEmitter {
|
|
|
265
268
|
this._running = true;
|
|
266
269
|
return this._startPoller();
|
|
267
270
|
}
|
|
268
|
-
stop(soft, timeout) {
|
|
271
|
+
async stop(soft, timeout) {
|
|
269
272
|
if (!soft && this._activeReq) {
|
|
270
273
|
this._activeReq.abort();
|
|
271
274
|
}
|
|
272
275
|
this._running = this._paused = false;
|
|
273
276
|
if (!this._inFlight) {
|
|
274
|
-
|
|
277
|
+
await this._drainDeleteQueue();
|
|
278
|
+
return true;
|
|
275
279
|
}
|
|
276
280
|
let resolved = false;
|
|
277
281
|
let timer;
|
|
278
|
-
|
|
282
|
+
const result = await new Promise(async (resolve) => {
|
|
279
283
|
this.on('drained', () => {
|
|
280
284
|
if (!resolved) {
|
|
281
285
|
resolved = true;
|
|
@@ -291,6 +295,8 @@ class Squiss extends events_1.EventEmitter {
|
|
|
291
295
|
resolve(false);
|
|
292
296
|
}, timeout) : undefined;
|
|
293
297
|
});
|
|
298
|
+
await this._drainDeleteQueue();
|
|
299
|
+
return result;
|
|
294
300
|
}
|
|
295
301
|
getS3() {
|
|
296
302
|
if (!this._s3) {
|
|
@@ -298,6 +304,13 @@ class Squiss extends events_1.EventEmitter {
|
|
|
298
304
|
}
|
|
299
305
|
return this._s3;
|
|
300
306
|
}
|
|
307
|
+
async _drainDeleteQueue() {
|
|
308
|
+
if (this._delTimer) {
|
|
309
|
+
clearTimeout(this._delTimer);
|
|
310
|
+
this._delTimer = undefined;
|
|
311
|
+
}
|
|
312
|
+
await this._deleteXMessages();
|
|
313
|
+
}
|
|
301
314
|
_initS3() {
|
|
302
315
|
if (this._opts.S3) {
|
|
303
316
|
if (typeof this._opts.S3 === 'function') {
|
|
@@ -439,12 +452,11 @@ class Squiss extends events_1.EventEmitter {
|
|
|
439
452
|
_startPoller() {
|
|
440
453
|
return this._initTimeoutExtender()
|
|
441
454
|
.then(() => this.getQueueUrl())
|
|
442
|
-
.then((queueUrl) =>
|
|
443
|
-
.
|
|
444
|
-
this.emit('error', e);
|
|
455
|
+
.then((queueUrl) => {
|
|
456
|
+
this._getBatch(queueUrl);
|
|
445
457
|
});
|
|
446
458
|
}
|
|
447
|
-
_deleteXMessages(x) {
|
|
459
|
+
async _deleteXMessages(x) {
|
|
448
460
|
const delQueue = this._delQueue;
|
|
449
461
|
const iterator = delQueue.entries();
|
|
450
462
|
const delBatch = Array.from({ length: x || delQueue.size }, function () {
|
|
@@ -452,7 +464,7 @@ class Squiss extends events_1.EventEmitter {
|
|
|
452
464
|
delQueue.delete(element[0]);
|
|
453
465
|
return element[1];
|
|
454
466
|
}, iterator);
|
|
455
|
-
this._deleteMessages(delBatch);
|
|
467
|
+
await this._deleteMessages(delBatch);
|
|
456
468
|
}
|
|
457
469
|
_isLargeMessage(message, minSize) {
|
|
458
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.
|
|
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.
|
|
52
|
-
"@aws-sdk/client-sqs": "^3.
|
|
53
|
-
"@aws-sdk/types": "^3.
|
|
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": "^
|
|
63
|
+
"@types/node": "^16.18.39",
|
|
64
64
|
"@types/proxyquire": "^1.3.28",
|
|
65
|
-
"@types/uuid": "^9.0.
|
|
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.
|
|
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.
|
|
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",
|