Genie SQS Toolbelt
Set of reusable tools to make writing new SQS producers and consumers a breeze.
How to publish a new version
After your branch has been merged into master:
- Checkout the master branch:
git checkout master
. - Pull down the latest changes on master:
git pull
. - Run the correct command out of the following, depending on if your change was a patch (bug fix), minor (non-breaking change), major (breaking change):
3.1 Patch:
npm version patch
3.2 Minor: npm version minor
3.3 Major: npm version major
Sample Usage
import { setSQS, sendMessage, onReceiveMessage, ProcessorResult } from '@genie-solutions/sqs-toolbelt';
import AWS = require('aws-sdk');
import uuid = require('uuid');
const sqs = new AWS.SQS({ region: 'ap-southeast-2' });
const queueUrl = `${SQS.BASE_URL}/${SQS.ACCOUNT_NUMBER}/${queueName}`;
setSQS(sqs);
setLogger(logger);
sendMessage(queueUrl, {
correlationId: req.headers['X-Correlation-ID'],
body: JSON.stringify(payload),
});
onReceiveMessage({
queueUrl: '<queue_url>',
dlQueueUrl: '<optional_dead_letter_queue_url>',
processor: async ({ correlationId, body }): Promise<ProcessorResult> => {
return { success: true };
}
})
Running tests
To run test, first start the SQS docker container: docker-compose up -d
.
Now tests can be run with npm test
.