@apipass/sqs-server 0.0.48 → 0.0.49
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/lib/sqs-options.interface.d.ts +2 -0
- package/lib/sqs-server.d.ts +3 -0
- package/lib/sqs-server.js +23 -2
- package/lib/sqs-server.js.map +1 -1
- package/package.json +3 -2
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { type SNSClient } from '@aws-sdk/client-sns';
|
|
2
2
|
import { type SQSClient } from '@aws-sdk/client-sqs';
|
|
3
|
+
import { type S3Client } from "@aws-sdk/client-s3";
|
|
3
4
|
export interface SqsOptions {
|
|
4
5
|
region: string;
|
|
5
6
|
accountId: string;
|
|
6
7
|
sqs?: SQSClient;
|
|
7
8
|
sns?: SNSClient;
|
|
9
|
+
s3?: S3Client;
|
|
8
10
|
}
|
package/lib/sqs-server.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare class SQSServer extends Server implements CustomTransportStrategy
|
|
|
5
5
|
private readonly options;
|
|
6
6
|
private readonly sqsClient;
|
|
7
7
|
private readonly snsClient;
|
|
8
|
+
private readonly s3Client;
|
|
8
9
|
private consumers;
|
|
9
10
|
private registeredQueues;
|
|
10
11
|
constructor(sqsOptions: SqsOptions);
|
|
@@ -13,4 +14,6 @@ export declare class SQSServer extends Server implements CustomTransportStrategy
|
|
|
13
14
|
private handle;
|
|
14
15
|
private createAwsResources;
|
|
15
16
|
close(): any;
|
|
17
|
+
private isS3Message;
|
|
18
|
+
private readMessageFromPayloadS3Pointer;
|
|
16
19
|
}
|
package/lib/sqs-server.js
CHANGED
|
@@ -26,15 +26,17 @@ const sqs_consumer_1 = require("sqs-consumer");
|
|
|
26
26
|
const sqs_context_1 = require("./sqs-context");
|
|
27
27
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
28
28
|
const client_sns_1 = require("@aws-sdk/client-sns");
|
|
29
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
29
30
|
const sqs_common_1 = require("@apipass/sqs-common");
|
|
30
31
|
class SQSServer extends microservices_1.Server {
|
|
31
32
|
constructor(sqsOptions) {
|
|
32
|
-
var _a, _b;
|
|
33
|
+
var _a, _b, _c;
|
|
33
34
|
super();
|
|
34
35
|
this.sqsOptions = sqsOptions;
|
|
35
36
|
this.options = sqsOptions;
|
|
36
37
|
this.sqsClient = (_a = this.options.sqs) !== null && _a !== void 0 ? _a : new client_sqs_1.SQSClient();
|
|
37
38
|
this.snsClient = (_b = this.options.sns) !== null && _b !== void 0 ? _b : new client_sns_1.SNSClient();
|
|
39
|
+
this.s3Client = (_c = this.options.s3) !== null && _c !== void 0 ? _c : new client_s3_1.S3Client();
|
|
38
40
|
this.consumers = [];
|
|
39
41
|
this.registeredQueues = [];
|
|
40
42
|
}
|
|
@@ -70,8 +72,12 @@ class SQSServer extends microservices_1.Server {
|
|
|
70
72
|
handleMessage: (message) => __awaiter(this, void 0, void 0, function* () {
|
|
71
73
|
const { Body } = message, messageMetadata = __rest(message, ["Body"]);
|
|
72
74
|
const sqsCtx = new sqs_context_1.SQSContext({ queueName, messageMetadata });
|
|
75
|
+
let messageBody = JSON.parse(Body);
|
|
73
76
|
if (typeof Body === 'string') {
|
|
74
|
-
|
|
77
|
+
if (this.isS3Message(message)) {
|
|
78
|
+
messageBody = yield this.readMessageFromPayloadS3Pointer(messageBody[1]);
|
|
79
|
+
}
|
|
80
|
+
yield handler(JSON.parse(messageBody), sqsCtx);
|
|
75
81
|
}
|
|
76
82
|
})
|
|
77
83
|
});
|
|
@@ -109,6 +115,21 @@ class SQSServer extends microservices_1.Server {
|
|
|
109
115
|
this.consumers = [];
|
|
110
116
|
this.registeredQueues = [];
|
|
111
117
|
}
|
|
118
|
+
isS3Message(messageBody) {
|
|
119
|
+
return !!(messageBody && Array.isArray(messageBody)
|
|
120
|
+
&& messageBody[0] instanceof String
|
|
121
|
+
&& messageBody[0].includes('PayloadS3Pointer'));
|
|
122
|
+
}
|
|
123
|
+
readMessageFromPayloadS3Pointer(objectInfo) {
|
|
124
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
+
const object = new client_s3_1.GetObjectCommand({
|
|
126
|
+
Bucket: objectInfo.s3BucketName,
|
|
127
|
+
Key: objectInfo.s3Key
|
|
128
|
+
});
|
|
129
|
+
const response = yield this.s3Client.send(object);
|
|
130
|
+
return JSON.parse(yield response.Body.transformToString());
|
|
131
|
+
});
|
|
132
|
+
}
|
|
112
133
|
}
|
|
113
134
|
exports.SQSServer = SQSServer;
|
|
114
135
|
//# sourceMappingURL=sqs-server.js.map
|
package/lib/sqs-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqs-server.js","sourceRoot":"","sources":["../src/sqs-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAAiG;AACjG,+CAAuC;AAEvC,+CAA0C;AAC1C,oDAA6D;AAC7D,oDAA8C;AAC9C,oDAAsD;AAEtD,MAAa,SAAU,SAAQ,sBAAM;
|
|
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.
|
|
3
|
+
"version": "0.0.49",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "Alexandre Zanelatto <alexandre@apipass.com.br>",
|
|
6
6
|
"license": "ISC",
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@apipass/sqs-common": "0.0.54",
|
|
15
|
+
"@aws-sdk/client-s3": "3.731.1",
|
|
15
16
|
"@aws-sdk/client-sns": "3.731.1",
|
|
16
17
|
"sqs-consumer": "11.4.0"
|
|
17
18
|
},
|
|
@@ -28,5 +29,5 @@
|
|
|
28
29
|
"tsc": "tsc",
|
|
29
30
|
"test": "node ./__tests__/@apipass/sqs-server.test.js"
|
|
30
31
|
},
|
|
31
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "0cc58b7290f097fdfe47bce94fda836f5f6449c6"
|
|
32
33
|
}
|