1.0.8 • Published 4 years ago
@rfcx/message-queue v1.0.8
A simple wrapper on top of message queues.
Usage example for SQS
import { MessageQueue } from '@rfcx/message-queue'
const options = {
...
}
const messageQueue = new MessageQueue('sqs', options)
messageQueue.publish('publication-queue', { foo: 'bar' })
messageQueue.subscribe('subscription-queue', (message: unknown) => {
return true
})Usage example for SNS
import { MessageQueue } from '@rfcx/message-queue'
const options = {
...
}
const messageQueue = new MessageQueue('sns', options)
messageQueue.publish('publication-topic', { foo: 'bar' })API
new MessageQueue(type, options)
Creates a new MessageQueue client.
Options
type- String - client type (sqsorsns)options- Object - additional optionsoptions.topicPrefix- String - SQS queue or SNS topic prefix (e.g.staginginstaging-event-created)options.topicPostfix- String - SQS queue or SNS topic postfix (e.g.staginginevent-created-staging)
Environmental variables
For SQS client: AWS_ACCESS_KEY_ID, AWS_SECRET_KEY, AWS_REGION_ID
For SNS client: AWS_ACCESS_KEY_ID, AWS_SECRET_KEY, AWS_REGION_ID, AWS_ACCOUNT_ID
MESSAGE_QUEUE_ENDPOINT if you want to use custom endpoint
Additional notes
- Note that
SNSclient does not havesubscribemethod as you can't subscribe directly toSNStopic.
Publishing
Publishing to NPM registry is done automatically via GitHub Actions once new release is published in the GitHub repository.
You must have NPM_PUBLISH_TOKEN secret to be defined in your repository or organization. Reference this or this for instructions.