UNPKG

message-subscriber

Version:

Subscribe to messages at any Cloud Service. Receive messages only by registering a EventEmitter Listener. (AWS SQS, Azure ESQ, Google Tasks)

56 lines 4.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SQSAdapter = void 0; const client_sqs_1 = require("@aws-sdk/client-sqs"); class SQSAdapter { constructor(params) { this.maxNumberOfMessages = params.maxNumberOfMessages; this._queueURL = params.queueURL; this._sqs = new client_sqs_1.SQSClient({ ...(params.sqs ? params.sqs : undefined), }); } async receive(maxMessages) { const command = new client_sqs_1.ReceiveMessageCommand({ MaxNumberOfMessages: maxMessages || 10, QueueUrl: this._queueURL, VisibilityTimeout: 30, WaitTimeSeconds: 20, }); const response = await this._sqs.send(command); if (!response.Messages) { return []; } return response.Messages.map((message) => { return { id: message.MessageId, receipt: message.ReceiptHandle, payload: message.Body, receivedTimestamp: Date.now(), delete: async () => { return this.delete(message.ReceiptHandle); }, delay: async (seconds) => { return this.delay(message.ReceiptHandle, seconds); }, }; }); } async delete(id) { const command = new client_sqs_1.DeleteMessageCommand({ QueueUrl: this._queueURL, ReceiptHandle: id, }); await this._sqs.send(command); } async delay(id, seconds) { const command = new client_sqs_1.ChangeMessageVisibilityCommand({ QueueUrl: this._queueURL, ReceiptHandle: id, VisibilityTimeout: seconds, }); await this._sqs.send(command); } } exports.SQSAdapter = SQSAdapter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1FTQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZXNzYWdlQWRhcHRlcnMvU1FTQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUs7QUFRckssTUFBYSxVQUFVO0lBS3JCLFlBQVksTUFBd0I7UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLHNCQUFTLENBQUM7WUFDeEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFvQjtRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLGtDQUFxQixDQUFDO1lBQ3hDLG1CQUFtQixFQUFFLFdBQVcsSUFBSSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN4QixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLGVBQWUsRUFBRSxFQUFFO1NBQ3BCLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDdEIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFtQixFQUFFLEVBQUU7WUFDbkQsT0FBTztnQkFDTCxFQUFFLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQ3JCLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYTtnQkFDOUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUNyQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUU7b0JBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBdUIsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO2dCQUNELEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBZSxFQUFFLEVBQUU7b0JBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDOUQsQ0FBQzthQUNTLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQVU7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQ0FBb0IsQ0FBQztZQUN2QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsYUFBYSxFQUFFLEVBQUU7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFVLEVBQUUsT0FBZTtRQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLDJDQUE4QixDQUFDO1lBQ2pELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN4QixhQUFhLEVBQUUsRUFBRTtZQUNqQixpQkFBaUIsRUFBRSxPQUFPO1NBQzNCLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBN0RELGdDQTZEQyJ9