Fix #119: Fix constructing more complex object with arrays #126
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.
Fixing the bug #119
Description
Fixed incorrect array handling when combining complex hx-vals with json-enc. Previously, when processing:
<button hx-ext="json-enc" hx-vals='{"Id":1,"Items":["abc","xyz"]}'> ...</button>
The
encodeParameters
function gets as input FormData object like:When retrieving types from hx-vals, for each entry with an
Items
key, whole array was added to the result object:Instead of:
To change this behaviour, the function now first groups FormData parameters by keys, and then maps raw values to types from hx-vals.
Testing
In the test
handles hx-vals properly
added an array-type value ('array': ['text', 123, {'key': 'value'}]
) and expects it to to be properly included in the body.Checklist
npm run test
) and verified that it succeeded