This repository was archived by the owner on Aug 23, 2024. It is now read-only.
Option to inject the request #94
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR gives the user an option for the user to inject their own
request
object into Octonode, instead of having to use the default one (that beingrequire('request')
).At Gitter we've been using this to control the behaviour of Octonode in our own custom manner. We wrap the underlying request object in several additional layers which in turn delegate to the subsequent layer while modifying the behaviour of the request in some way. Sort of like a middleware.
For example, we have middlewares for dealing with HTTP 502 gateway exceptions. When we see these, we use an exponential backoff retry several times. We also detect when multiple pages of results are available, and fetch all the pages at once, returning the full result set to the caller.
When I have a moment to transliterate some of these middlewares from JS to Coffee, I'll be happy to donate them to octonode.