@altangent/aws-client
Advanced tools
Comparing version 1.1.0 to 1.2.0
import { SQS } from 'aws-sdk'; | ||
import { SendMessageBatchRequestEntry } from 'aws-sdk/clients/sqs'; | ||
export declare const sqs: SQS; | ||
@@ -32,1 +33,7 @@ export interface EnsureQueueResult { | ||
export declare function deleteMessage(queueUrl: string, receiptHandle: string): Promise<void>; | ||
/** | ||
* Publishes a number of messages to the SQS queue | ||
* @param queueUrl | ||
* @param entries | ||
*/ | ||
export declare function sendMessageBatch(queueUrl: string, entries: SendMessageBatchRequestEntry[]): Promise<void>; |
@@ -127,2 +127,27 @@ "use strict"; | ||
//////////////////// | ||
/** | ||
* Publishes a number of messages to the SQS queue | ||
* @param queueUrl | ||
* @param entries | ||
*/ | ||
function sendMessageBatch(queueUrl, entries) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
entries = entries.slice(); | ||
let chain = Promise.resolve(); | ||
while (entries.length) { | ||
let id = 0; | ||
let chunk = entries.splice(0, 10); | ||
chain.then(() => { | ||
return exports.sqs | ||
.sendMessageBatch({ | ||
QueueUrl: queueUrl, | ||
Entries: chunk, | ||
}) | ||
.promise(); | ||
}); | ||
} | ||
return chain; | ||
}); | ||
} | ||
exports.sendMessageBatch = sendMessageBatch; | ||
//# sourceMappingURL=sqs.js.map |
{ | ||
"name": "@altangent/aws-client", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "AWS tools", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
import * as winston from 'winston'; | ||
import { SQS, SNS } from 'aws-sdk'; | ||
import { SendMessageBatchRequestEntry } from 'aws-sdk/clients/sqs'; | ||
const sns = new SNS({ region: 'us-east-1' }); | ||
@@ -135,1 +136,25 @@ | ||
//////////////////// | ||
/** | ||
* Publishes a number of messages to the SQS queue | ||
* @param queueUrl | ||
* @param entries | ||
*/ | ||
export async function sendMessageBatch(queueUrl: string, entries: SendMessageBatchRequestEntry[]) { | ||
entries = entries.slice(); | ||
let chain = Promise.resolve(); | ||
while (entries.length) { | ||
let id = 0; | ||
let chunk = entries.splice(0, 10); | ||
chain.then(() => { | ||
return sqs | ||
.sendMessageBatch({ | ||
QueueUrl: queueUrl, | ||
Entries: chunk, | ||
}) | ||
.promise(); | ||
}); | ||
} | ||
return chain; | ||
} |
Sorry, the diff of this file is not supported yet
33928
745