prime-sdk 3.0.1 → 3.0.3

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.
Binary file
@@ -17,4 +17,5 @@ export declare class Sqs implements IQueue {
17
17
  receiveMessages(): Promise<ReceiveMessageResult>;
18
18
  receiveMessagesV2(): Promise<ReceiveMessageResult>;
19
19
  deleteMessage(receiptHandle: any): Promise<unknown>;
20
+ destroyClient(): void;
20
21
  }
@@ -55,6 +55,9 @@ let Sqs = class Sqs {
55
55
  });
56
56
  return await this.sendCommand(deleteCommand);
57
57
  }
58
+ destroyClient() {
59
+ this.client.destroy();
60
+ }
58
61
  };
59
62
  exports.Sqs = Sqs;
60
63
  exports.Sqs = Sqs = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"sqs.service.js","sourceRoot":"","sources":["../../../../src/external/aws/sqs/sqs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAM6B;AAC7B,2CAAoD;AAI7C,IAAM,GAAG,GAAT,MAAM,GAAG;IAMd,YAAsC,MAAkC;QAAjB,WAAM,GAAN,MAAM,CAAW;QAFhE,mBAAc,GAA8B,CAAC,+BAAkB,CAAC,GAAG,CAAC,CAAC;IAEF,CAAC;IAE5E,KAAK,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE;QACvD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAqD;QAErD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAAa;QAC/B,MAAM,aAAa,GAAG,IAAI,iCAAoB,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AAtDY,kBAAG;cAAH,GAAG;IADf,IAAA,mBAAU,GAAE;IAOE,WAAA,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAA;qCAA0B,sBAAS;GAN7D,GAAG,CAsDf"}
1
+ {"version":3,"file":"sqs.service.js","sourceRoot":"","sources":["../../../../src/external/aws/sqs/sqs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAM6B;AAC7B,2CAAoD;AAI7C,IAAM,GAAG,GAAT,MAAM,GAAG;IAMd,YAAsC,MAAkC;QAAjB,WAAM,GAAN,MAAM,CAAW;QAFhE,mBAAc,GAA8B,CAAC,+BAAkB,CAAC,GAAG,CAAC,CAAC;IAEF,CAAC;IAE5E,KAAK,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE;QACvD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAqD;QAErD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAAa;QAC/B,MAAM,aAAa,GAAG,IAAI,iCAAoB,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;CACF,CAAA;AA1DY,kBAAG;cAAH,GAAG;IADf,IAAA,mBAAU,GAAE;IAOE,WAAA,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAA;qCAA0B,sBAAS;GAN7D,GAAG,CA0Df"}
@@ -9,5 +9,6 @@ export interface IQueue {
9
9
  queueUrl: any;
10
10
  attributeNames: any;
11
11
  }): void;
12
+ destroyClient(): void;
12
13
  }
13
14
  export declare const IQueue: unique symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"queue.interface.js","sourceRoot":"","sources":["../../../../src/lib/queue/interfaces/queue.interface.ts"],"names":[],"mappings":";;;AASa,QAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"queue.interface.js","sourceRoot":"","sources":["../../../../src/lib/queue/interfaces/queue.interface.ts"],"names":[],"mappings":";;;AAUa,QAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC"}
@@ -6,6 +6,10 @@ export declare class Queue {
6
6
  private queueUrl;
7
7
  private bulk;
8
8
  private context;
9
+ private processing;
10
+ private readonly MAX_TIME_TO_WAIT_FOR_PROCESSING;
11
+ private stopped;
12
+ private abortController;
9
13
  private inWork;
10
14
  private waitTimeSeconds;
11
15
  private attributeNames;
@@ -15,4 +19,6 @@ export declare class Queue {
15
19
  run(version: number): Promise<void>;
16
20
  receiveMessages(version: number): Promise<ReceiveMessageResult>;
17
21
  deleteMessage(receiptHandle: any): Promise<unknown>;
22
+ stop(): Promise<void>;
23
+ private sleep;
18
24
  }
@@ -22,7 +22,11 @@ let Queue = class Queue {
22
22
  this.queueUrl = null;
23
23
  this.bulk = 1;
24
24
  this.context = null;
25
- this.inWork = false;
25
+ this.processing = 0;
26
+ this.MAX_TIME_TO_WAIT_FOR_PROCESSING = 20000;
27
+ this.stopped = false;
28
+ this.abortController = null;
29
+ this.inWork = true;
26
30
  this.waitTimeSeconds = 20;
27
31
  this.attributeNames = [client_sqs_1.QueueAttributeName.All];
28
32
  this.version = 1;
@@ -34,38 +38,41 @@ let Queue = class Queue {
34
38
  this.waitTimeSeconds = waitTimeSeconds;
35
39
  this.attributeNames = attributeNames;
36
40
  this.version = version;
41
+ this.abortController = new AbortController();
42
+ this.stopped = false;
43
+ this.processing = 0;
44
+ this.inWork = true;
37
45
  this.broker.setup({
38
46
  waitTimeSeconds: this.waitTimeSeconds,
39
47
  bulk: this.bulk,
40
48
  queueUrl: this.queueUrl,
41
49
  attributeNames: this.attributeNames,
42
50
  });
43
- while (!this.inWork) {
51
+ while (this.inWork) {
44
52
  await this.run(version);
45
53
  }
46
54
  }
47
55
  async run(version) {
48
- this.inWork = true;
49
- const response = await this.receiveMessages(version);
56
+ this.processing += 1;
50
57
  try {
58
+ const response = await this.receiveMessages(version);
51
59
  if (this.bulk === 1) {
52
60
  const message = response.Messages?.[0] || null;
53
61
  if (message) {
54
62
  await this.context.handleMessage(message);
55
63
  await this.deleteMessage(message.ReceiptHandle);
56
64
  }
57
- this.inWork = false;
58
65
  return;
59
66
  }
60
67
  await this.context.handleMessage(response.Messages);
61
- response.Messages.forEach(async (message) => {
62
- await this.deleteMessage(message.ReceiptHandle);
63
- });
68
+ await Promise.all(response.Messages.map((message) => this.deleteMessage(message.ReceiptHandle)));
64
69
  }
65
70
  catch (error) {
66
71
  await this.context.handleError(error);
67
72
  }
68
- this.inWork = false;
73
+ finally {
74
+ this.processing -= 1;
75
+ }
69
76
  }
70
77
  async receiveMessages(version) {
71
78
  if (version === 1) {
@@ -78,6 +85,25 @@ let Queue = class Queue {
78
85
  async deleteMessage(receiptHandle) {
79
86
  return await this.broker.deleteMessage(receiptHandle);
80
87
  }
88
+ async stop() {
89
+ if (this.stopped) {
90
+ return;
91
+ }
92
+ const timeMax = new Date().getTime() + this.MAX_TIME_TO_WAIT_FOR_PROCESSING;
93
+ this.inWork = false;
94
+ this.stopped = true;
95
+ this.abortController?.abort();
96
+ while (this.processing > 0) {
97
+ const time = new Date().getTime();
98
+ if (time >= timeMax)
99
+ break;
100
+ await this.sleep(500);
101
+ }
102
+ this.broker.destroyClient();
103
+ }
104
+ sleep(ms) {
105
+ return new Promise((resolve) => setTimeout(resolve, ms));
106
+ }
81
107
  };
82
108
  exports.Queue = Queue;
83
109
  exports.Queue = Queue = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/lib/queue/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/lib/queue/queue.ts"],"names":[],"mappings":"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"}