Prevent options object from being mutated. Fixes #230. #232
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.
Restler freely mutates the contents of the options object, causing issues such as #230. This PR uses the already available mixin function to prevent this from happening, allowing multiple calls utilizing the same options object to function. I added two new tests as well, which did not pass before I made the change.
A possible regression due to this change could be a case where someone calls restler.get(url, options) followed by restler.request(url, options). Before this change was made, .get would have populated the options object and made it usable by the .request function, after this change, options will no longer be mutated by the call to .get so the subsequent .request may fail if the options were not sufficiently set in the first place. But I think the good outweighs the bad here, especially for POST/PUT/PATCH functions.