Open marcin-zajac-pc opened 6 months ago
Thanks for addressing the issue with this PR. All the changes seem LGTM. However I think it would be helpful to write some docs for this change so that new users of this library will know how to use this option. Could you please add some docs for this?
Context
Related issue: Issue #78.
Problem
Currently, we're unable to set the SQS endpoint when the module is registered. As mentioned in the issue, when using an emulator, we receive warnings because the
queueUrl
is composed from AWS credentials in the environment, which differs from local URLs such as those used by LocalStack.The error message suggests using the
useQueueUrlAsEndpoint
property, but I couldn't find that in the SQSClient options. However, setting theendpoint
directly resolves the issue.To provide more background, when running SQS locally using LocalStack, I set the SQS endpoint to
http://localhost:4566
.Solution
I added an optional
globalOptions
object property with anendpoint
field to allow setting the endpoint directly on the SQSClient. The condition ensures that if the consumer/producer options have ansqs
property, it won't be overwritten by the global one. I decided that consumer/producer options should take priority.This solution was tested locally and works as expected.
Other Thoughts
We can discuss adding more properties to the
globalOptions
. I'm open to suggestions, but for now, I wasn't sure if anything else would be necessary.