Fix nested array data on Monitor.put #39
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.
The issue
In the method
Monitor.put
, the assertiontypeof data == 'object'
returnstrue
whetherdata
is an Array or not:https://github.com/cronitorio/cronitor-js/blob/master/lib/monitor.js#L14
This causes
data
to be reassigned as a nested array whenMonitor.put
is called with an array as thedata
parameter, which causes themonitors
value in the data of the PUT request to be a nesten array:This behavior results in an HTTP 500 Internal Server Error from the API.
Example using config:
Results in the following AxiosResponse from the API:
Which outputs the error message from
applyConfig
:The fix
Add a condition
if (!Array.isArray(data))
to make sure thedata
param is only reassigned into an array if the initialdata
param is not an array.