@apipass/sqs-server 0.0.20-alpha.0 → 0.0.28-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.
@@ -2,4 +2,5 @@ import * as SQS from 'aws-sdk/clients/sqs';
2
2
  export interface SqsOptions {
3
3
  endpoint: string;
4
4
  sqs?: SQS;
5
+ autoCreateQueue?: boolean;
5
6
  }
@@ -2,10 +2,12 @@ import { CustomTransportStrategy, Server } from "@nestjs/microservices";
2
2
  import { SqsOptions } from "./sqs-options.interface";
3
3
  export declare class SQSServer extends Server implements CustomTransportStrategy {
4
4
  private readonly options;
5
+ private sqs;
5
6
  private consumers;
6
7
  private registeredQueues;
7
8
  constructor(options: SqsOptions);
8
9
  listen(callback: () => any): any;
9
10
  private bindHandlers;
11
+ private createQueueIfNotExist;
10
12
  close(): any;
11
13
  }
package/lib/sqs-server.js CHANGED
@@ -25,10 +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' });
28
29
  class SQSServer extends microservices_1.Server {
29
30
  constructor(options) {
30
31
  super();
31
32
  this.options = options;
33
+ this.sqs = this.options.sqs || new aws.SQS();
32
34
  this.consumers = [];
33
35
  this.registeredQueues = [];
34
36
  }
@@ -37,13 +39,13 @@ class SQSServer extends microservices_1.Server {
37
39
  callback();
38
40
  }
39
41
  bindHandlers() {
40
- console.log('messageHandlers', this.messageHandlers);
41
42
  this.messageHandlers.forEach((handler, queueName) => {
43
+ this.createQueueIfNotExist(queueName, this.options);
42
44
  const queueAlreadyRegistered = this.registeredQueues.includes(queueName);
43
45
  if (queueAlreadyRegistered)
44
46
  return;
45
47
  const app = sqs_consumer_1.Consumer.create({
46
- sqs: this.options.sqs || new aws.SQS(),
48
+ sqs: this.sqs,
47
49
  queueUrl: `${this.options.endpoint}/${queueName}`,
48
50
  handleMessage: (message) => __awaiter(this, void 0, void 0, function* () {
49
51
  const { Body } = message, messageMetadata = __rest(message, ["Body"]);
@@ -62,6 +64,29 @@ class SQSServer extends microservices_1.Server {
62
64
  this.registeredQueues.push(queueName);
63
65
  });
64
66
  }
67
+ createQueueIfNotExist(queueName, options) {
68
+ if (!options.autoCreateQueue) {
69
+ return;
70
+ }
71
+ var params = {
72
+ QueueName: queueName,
73
+ };
74
+ sqs.getQueueUrl(params, function (err, data) {
75
+ if (err) {
76
+ if (err.code === 'AWS.SimpleQueueService.NonExistentQueue') {
77
+ sqs.createQueue(params, function (err, data) {
78
+ if (err)
79
+ console.log(`Fail on create queue. Error: ${err}`);
80
+ else
81
+ console.log(`Success on create queue ${queueName}`);
82
+ });
83
+ }
84
+ }
85
+ else {
86
+ console.log(`Queue ${queueName} exist.`);
87
+ }
88
+ });
89
+ }
65
90
  close() {
66
91
  for (const consumer of this.consumers) {
67
92
  consumer.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"sqs-server.js","sourceRoot":"","sources":["../src/sqs-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAsE;AACtE,+CAAkD;AAElD,+CAAyC;AACzC,+BAA+B;AAE/B,MAAa,SAAU,SAAQ,sBAAM;IAKjC,YAA6B,OAAmB;QAC5C,KAAK,EAAE,CAAC;QADiB,YAAO,GAAP,OAAO,CAAY;QAE5C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAmB;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,QAAQ,EAAE,CAAC;IACf,CAAC;IAEO,YAAY;QAChB,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACpD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;YAChD,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzE,IAAI,sBAAsB;gBAAE,OAAO;YACnC,MAAM,GAAG,GAAG,uBAAQ,CAAC,MAAM,CAAC;gBACxB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE;gBACtC,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS,EAAE;gBACjD,aAAa,EAAE,CAAO,OAAmB,EAAE,EAAE;oBACzC,MAAM,EAAE,IAAI,KAAyB,OAAO,EAA3B,eAAe,UAAK,OAAO,EAAtC,QAA4B,CAAU,CAAC;oBAC7C,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAC,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC,CAAA;oBAC3D,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;gBAC3C,CAAC,CAAA;aACJ,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YACnC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC/B,CAAC;CACJ;AApDD,8BAoDC"}
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.20-alpha.0",
3
+ "version": "0.0.28-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": "c4c075c8fdd09dbac48fcc55c2b787f9a0db2445"
29
+ "gitHead": "242a9acc88fee5ec107cceff709a1a3ff866734a"
30
30
  }