@apipass/sqs-server 0.0.29 → 0.0.31-alpha.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.
@@ -1,6 +1,8 @@
1
1
  import * as SQS from 'aws-sdk/clients/sqs';
2
+ import * as S3 from 'aws-sdk/clients/s3';
2
3
  export interface SqsOptions {
3
4
  endpoint: string;
4
5
  sqs?: SQS;
6
+ s3?: S3;
5
7
  autoCreateQueue?: boolean;
6
8
  }
@@ -3,11 +3,14 @@ import { SqsOptions } from "./sqs-options.interface";
3
3
  export declare class SQSServer extends Server implements CustomTransportStrategy {
4
4
  private readonly options;
5
5
  private sqs;
6
+ private s3;
6
7
  private consumers;
7
8
  private registeredQueues;
8
9
  constructor(options: SqsOptions);
9
10
  listen(callback: () => any): any;
10
11
  private bindHandlers;
12
+ private readMessageFromPayloadS3Pointer;
13
+ private isS3Message;
11
14
  private createQueueIfNotExist;
12
15
  close(): any;
13
16
  }
package/lib/sqs-server.js CHANGED
@@ -25,12 +25,12 @@ const microservices_1 = require("@nestjs/microservices");
25
25
  const sqs_consumer_1 = require("sqs-consumer");
26
26
  const sqs_context_1 = require("./sqs-context");
27
27
  const aws = require("aws-sdk");
28
- const sqs = new aws.SQS({ region: 'us-east-1' });
29
28
  class SQSServer extends microservices_1.Server {
30
29
  constructor(options) {
31
30
  super();
32
31
  this.options = options;
33
32
  this.sqs = this.options.sqs || new aws.SQS();
33
+ this.s3 = this.options.s3 || new aws.S3();
34
34
  this.consumers = [];
35
35
  this.registeredQueues = [];
36
36
  }
@@ -49,8 +49,12 @@ class SQSServer extends microservices_1.Server {
49
49
  queueUrl: `${this.options.endpoint}/${queueName}`,
50
50
  handleMessage: (message) => __awaiter(this, void 0, void 0, function* () {
51
51
  const { Body } = message, messageMetadata = __rest(message, ["Body"]);
52
+ let messageBody = JSON.parse(Body);
53
+ if (this.isS3Message(messageBody)) {
54
+ messageBody = yield this.readMessageFromPayloadS3Pointer(messageBody[1]);
55
+ }
52
56
  const sqsCtx = new sqs_context_1.SQSContext({ queueName, messageMetadata });
53
- yield handler(JSON.parse(Body), sqsCtx);
57
+ yield handler(messageBody, sqsCtx);
54
58
  })
55
59
  });
56
60
  app.on('error', (err) => {
@@ -64,21 +68,42 @@ class SQSServer extends microservices_1.Server {
64
68
  this.registeredQueues.push(queueName);
65
69
  });
66
70
  }
71
+ readMessageFromPayloadS3Pointer(objectInfo) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const object = yield this.s3.getObject({
74
+ Bucket: objectInfo.s3BucketName,
75
+ Key: objectInfo.s3Key
76
+ }).promise();
77
+ yield this.s3.deleteObject({
78
+ Bucket: objectInfo.s3BucketName,
79
+ Key: objectInfo.s3Key
80
+ }).promise();
81
+ return JSON.parse(object.Body.toString());
82
+ });
83
+ }
84
+ isS3Message(messageBody) {
85
+ return !!(messageBody && Array.isArray(messageBody)
86
+ && messageBody[0] instanceof String
87
+ && messageBody[0].includes('PayloadS3Pointer'));
88
+ }
67
89
  createQueueIfNotExist(queueName, options) {
68
90
  if (!options.autoCreateQueue) {
69
91
  return;
70
92
  }
71
- var params = {
93
+ const params = {
72
94
  QueueName: queueName,
73
95
  };
96
+ const sqs = this.sqs;
74
97
  sqs.getQueueUrl(params, function (err, data) {
75
98
  if (err) {
76
99
  if (err.code === 'AWS.SimpleQueueService.NonExistentQueue') {
77
100
  sqs.createQueue(params, function (err, data) {
78
- if (err)
101
+ if (err) {
79
102
  console.log(`Fail on create queue. Error: ${err}`);
80
- else
103
+ }
104
+ else {
81
105
  console.log(`Success on create queue ${queueName}`);
106
+ }
82
107
  });
83
108
  }
84
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqs-server.js","sourceRoot":"","sources":["../src/sqs-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqs-server.js","sourceRoot":"","sources":["../src/sqs-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apipass/sqs-server",
3
- "version": "0.0.29",
3
+ "version": "0.0.31-alpha.0",
4
4
  "description": "> TODO: description",
5
5
  "author": "Alexandre Zanelatto <alexandre@apipass.com.br>",
6
6
  "license": "ISC",
@@ -26,5 +26,5 @@
26
26
  "tsc": "tsc",
27
27
  "test": "node ./__tests__/@apipass/sqs-server.test.js"
28
28
  },
29
- "gitHead": "952f108b470d1cb368e7451c9fe3a5cec91c970f"
29
+ "gitHead": "a27c92f8046b4185a5985440d6a266d509b9d22e"
30
30
  }