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
JavaScript
;
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