qdone 2.0.40-alpha → 2.0.42-alpha

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.
@@ -24,9 +24,11 @@ function getDeduplicationId(dedupContent, opt) {
24
24
  // Don't transmit long keys to redis
25
25
  dedupContent = dedupContent.trim().replace(/[^a-zA-Z0-9!"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/g, '_');
26
26
  const max = 128;
27
- const sep = '...sha1:';
28
- dedupContent = dedupContent.slice(0, max - sep.length - 42) + '...sha1:{' + (0, crypto_1.createHash)('sha1').update(dedupContent).digest('hex') + '}';
29
- return dedupContent;
27
+ const sep = 'sha1::body:';
28
+ const hash = (0, crypto_1.createHash)('sha1').update(dedupContent).digest('hex');
29
+ const truncated = dedupContent.slice(0, max - sep.length - 42);
30
+ const id = `sha1:{${hash}}:body:${truncated}`;
31
+ return id;
30
32
  }
31
33
  exports.getDeduplicationId = getDeduplicationId;
32
34
  /**
@@ -63,6 +65,10 @@ function addDedupParamsToMessage(message, opt, messageOptions) {
63
65
  if (!message.MessageDeduplicationId) {
64
66
  message.MessageDeduplicationId = getDeduplicationId(message.MessageBody, opt);
65
67
  }
68
+ else {
69
+ // Transform the incoming ID so that it fits SPS spec and is suitable for Redis
70
+ message.MessageDeduplicationId = getDeduplicationId(message.MessageDeduplicationId, opt);
71
+ }
66
72
  // Track our own dedup id so we can look it up upon ReceiveMessage
67
73
  if (opt.externalDedup) {
68
74
  message.MessageAttributes = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qdone",
3
- "version": "2.0.40-alpha",
3
+ "version": "2.0.42-alpha",
4
4
  "description": "A distributed scheduler for SQS",
5
5
  "type": "module",
6
6
  "main": "./index.js",
package/src/dedup.js CHANGED
@@ -19,9 +19,11 @@ export function getDeduplicationId (dedupContent, opt) {
19
19
  // Don't transmit long keys to redis
20
20
  dedupContent = dedupContent.trim().replace(/[^a-zA-Z0-9!"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/g, '_')
21
21
  const max = 128
22
- const sep = '...sha1:'
23
- dedupContent = dedupContent.slice(0, max - sep.length - 42) + '...sha1:{' + createHash('sha1').update(dedupContent).digest('hex') + '}'
24
- return dedupContent
22
+ const sep = 'sha1::body:'
23
+ const hash = createHash('sha1').update(dedupContent).digest('hex')
24
+ const truncated = dedupContent.slice(0, max - sep.length - 42)
25
+ const id = `sha1:{${hash}}:body:${truncated}`
26
+ return id
25
27
  }
26
28
 
27
29
  /**
@@ -56,6 +58,9 @@ export function addDedupParamsToMessage (message, opt, messageOptions) {
56
58
  // Fallback to using the message body
57
59
  if (!message.MessageDeduplicationId) {
58
60
  message.MessageDeduplicationId = getDeduplicationId(message.MessageBody, opt)
61
+ } else {
62
+ // Transform the incoming ID so that it fits SPS spec and is suitable for Redis
63
+ message.MessageDeduplicationId = getDeduplicationId(message.MessageDeduplicationId, opt)
59
64
  }
60
65
 
61
66
  // Track our own dedup id so we can look it up upon ReceiveMessage
@@ -230,7 +230,6 @@ export class JobExecutor {
230
230
  }
231
231
  debug('DeleteMessageBatch returned', result)
232
232
 
233
-
234
233
  // TODO Sentry
235
234
  }
236
235
  }