A simple wrapper on top of message queues.
npm install @rfcx/message-queueA simple wrapper on top of message queues.
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
$3
Creates a new MessageQueue client.
#### Options
*
type - _String_ - client type (sqs or sns)
* options - _Object_ - additional options
* options.topicPrefix - _String_ - SQS queue or SNS topic prefix (e.g. staging in staging-event-created)
* options.topicPostfix - _String_ - SQS queue or SNS topic postfix (e.g. staging in event-created-staging)
Environmental variables
For
SQS client: AWS_ACCESS_KEY_ID, AWS_SECRET_KEY, AWS_REGION_IDFor
SNS client: AWS_ACCESS_KEY_ID, AWS_SECRET_KEY, AWS_REGION_ID, AWS_ACCOUNT_IDMESSAGE_QUEUE_ENDPOINT if you want to use custom endpointAdditional notes
- Note that
SNS client does not have subscribe method as you can't subscribe directly to SNS topic.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.