@eyevinn/player-analytics-shared 0.8.0 → 0.9.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.
|
@@ -10,16 +10,21 @@ import {
|
|
|
10
10
|
paginateListQueues,
|
|
11
11
|
CreateQueueCommand,
|
|
12
12
|
} from '@aws-sdk/client-sqs';
|
|
13
|
+
import { NodeHttpHandler } from '@smithy/node-http-handler';
|
|
13
14
|
import { AbstractQueueAdapter } from '../../types/interfaces';
|
|
14
15
|
import winston from 'winston';
|
|
15
16
|
|
|
17
|
+
export interface SqsQueueAdapterOptions {
|
|
18
|
+
maxSockets?: number;
|
|
19
|
+
}
|
|
20
|
+
|
|
16
21
|
export class SqsQueueAdapter implements AbstractQueueAdapter {
|
|
17
22
|
logger: winston.Logger;
|
|
18
23
|
client: SQSClient;
|
|
19
24
|
queueUrl: string;
|
|
20
25
|
queueExists: boolean = false;
|
|
21
26
|
|
|
22
|
-
constructor(logger: winston.Logger) {
|
|
27
|
+
constructor(logger: winston.Logger, options?: SqsQueueAdapterOptions) {
|
|
23
28
|
this.logger = logger;
|
|
24
29
|
let region: any;
|
|
25
30
|
if ('QUEUE_REGION' in process.env) {
|
|
@@ -29,7 +34,21 @@ export class SqsQueueAdapter implements AbstractQueueAdapter {
|
|
|
29
34
|
}
|
|
30
35
|
this.queueUrl = process.env.SQS_QUEUE_URL!;
|
|
31
36
|
this.logger.info(`SQS Region: ${region}`);
|
|
32
|
-
|
|
37
|
+
|
|
38
|
+
const clientConfig: any = {
|
|
39
|
+
region: region,
|
|
40
|
+
endpoint: process.env.SQS_ENDPOINT
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
if (options?.maxSockets) {
|
|
44
|
+
clientConfig.requestHandler = new NodeHttpHandler({
|
|
45
|
+
httpAgent: { maxSockets: options.maxSockets },
|
|
46
|
+
httpsAgent: { maxSockets: options.maxSockets }
|
|
47
|
+
});
|
|
48
|
+
this.logger.info(`SQS max sockets set to: ${options.maxSockets}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
this.client = new SQSClient(clientConfig);
|
|
33
52
|
}
|
|
34
53
|
|
|
35
54
|
private async checkQueueExists(): Promise<boolean> {
|
|
@@ -75,7 +94,7 @@ export class SqsQueueAdapter implements AbstractQueueAdapter {
|
|
|
75
94
|
Time: {
|
|
76
95
|
DataType: 'String',
|
|
77
96
|
StringValue: event['timestamp']
|
|
78
|
-
? event['timestamp']
|
|
97
|
+
? String(event['timestamp'])
|
|
79
98
|
: new Date().toISOString(),
|
|
80
99
|
},
|
|
81
100
|
},
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { SQSClient, Message } from '@aws-sdk/client-sqs';
|
|
2
2
|
import { AbstractQueueAdapter } from '../../types/interfaces';
|
|
3
3
|
import winston from 'winston';
|
|
4
|
+
export interface SqsQueueAdapterOptions {
|
|
5
|
+
maxSockets?: number;
|
|
6
|
+
}
|
|
4
7
|
export declare class SqsQueueAdapter implements AbstractQueueAdapter {
|
|
5
8
|
logger: winston.Logger;
|
|
6
9
|
client: SQSClient;
|
|
7
10
|
queueUrl: string;
|
|
8
11
|
queueExists: boolean;
|
|
9
|
-
constructor(logger: winston.Logger);
|
|
12
|
+
constructor(logger: winston.Logger, options?: SqsQueueAdapterOptions);
|
|
10
13
|
private checkQueueExists;
|
|
11
14
|
private createQueue;
|
|
12
15
|
pushToQueue(event: Object): Promise<any>;
|
|
@@ -18,8 +18,9 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.SqsQueueAdapter = void 0;
|
|
20
20
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
21
|
+
const node_http_handler_1 = require("@smithy/node-http-handler");
|
|
21
22
|
class SqsQueueAdapter {
|
|
22
|
-
constructor(logger) {
|
|
23
|
+
constructor(logger, options) {
|
|
23
24
|
this.queueExists = false;
|
|
24
25
|
this.logger = logger;
|
|
25
26
|
let region;
|
|
@@ -31,7 +32,18 @@ class SqsQueueAdapter {
|
|
|
31
32
|
}
|
|
32
33
|
this.queueUrl = process.env.SQS_QUEUE_URL;
|
|
33
34
|
this.logger.info(`SQS Region: ${region}`);
|
|
34
|
-
|
|
35
|
+
const clientConfig = {
|
|
36
|
+
region: region,
|
|
37
|
+
endpoint: process.env.SQS_ENDPOINT
|
|
38
|
+
};
|
|
39
|
+
if (options === null || options === void 0 ? void 0 : options.maxSockets) {
|
|
40
|
+
clientConfig.requestHandler = new node_http_handler_1.NodeHttpHandler({
|
|
41
|
+
httpAgent: { maxSockets: options.maxSockets },
|
|
42
|
+
httpsAgent: { maxSockets: options.maxSockets }
|
|
43
|
+
});
|
|
44
|
+
this.logger.info(`SQS max sockets set to: ${options.maxSockets}`);
|
|
45
|
+
}
|
|
46
|
+
this.client = new client_sqs_1.SQSClient(clientConfig);
|
|
35
47
|
}
|
|
36
48
|
checkQueueExists() {
|
|
37
49
|
var e_1, _a;
|
|
@@ -91,7 +103,7 @@ class SqsQueueAdapter {
|
|
|
91
103
|
Time: {
|
|
92
104
|
DataType: 'String',
|
|
93
105
|
StringValue: event['timestamp']
|
|
94
|
-
? event['timestamp']
|
|
106
|
+
? String(event['timestamp'])
|
|
95
107
|
: new Date().toISOString(),
|
|
96
108
|
},
|
|
97
109
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqsQueueAdapter.js","sourceRoot":"","sources":["../../../adapters/queue/SqsQueueAdapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,oDAW6B;
|
|
1
|
+
{"version":3,"file":"SqsQueueAdapter.js","sourceRoot":"","sources":["../../../adapters/queue/SqsQueueAdapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -43,6 +43,12 @@ describe('SQS Queue Adapter', () => {
|
|
|
43
43
|
expect(result).toEqual(sqsResp);
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
+
it('should create adapter with custom max sockets configuration', async () => {
|
|
47
|
+
const adapter = new SqsQueueAdapter(Logger, { maxSockets: 100 });
|
|
48
|
+
expect(adapter).toBeDefined();
|
|
49
|
+
expect(adapter.client).toBeDefined();
|
|
50
|
+
});
|
|
51
|
+
|
|
46
52
|
it('should push to queue if QUEUE_REGION env is set and AWS_REGION is undefined', async () => {
|
|
47
53
|
process.env.QUEUE_REGION = 'eu-north-1';
|
|
48
54
|
process.env.AWS_REGION = undefined;
|