use unicode-resilient approach to exclude sub delimiters#67
Open
martinklepsch wants to merge 1 commit intotroch:masterfrom
Open
use unicode-resilient approach to exclude sub delimiters#67martinklepsch wants to merge 1 commit intotroch:masterfrom
martinklepsch wants to merge 1 commit intotroch:masterfrom
Conversation
martinklepsch
commented
Mar 13, 2024
Comment on lines
+33
to
+34
| if (subDelimiters.test(char)) { | ||
| return char // Return the character as is if it's a sub-delimiter |
Author
There was a problem hiding this comment.
This could probably be optimized a bit more, perhaps checking for character codes instead of matching against a regex. But maybe JS engines are so smart these days that it doesn't matter. Did you ever benchmark path-parser?
|
@troch is this fix is supposed to be merged? I've faced an issue described here router5/router5#499 and also waiting for this MR to be resolved🙏 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes troch/route-node#39
Fixes router5/router5#499
Hello!
I know this library is probably in kind of a "done" state but I noticed some issues with emojis in query params and decided to investigate. In the end it turned out the
.replacemethod breaks apart unicode characters in a way that will later trip upencodeURIComponent.Iterating over characters as done in this PR ensures that surrogate pairs are kept as-is and thus path building works as expected even when emojis are provided as part of path parameters.
(source)
I also added some tests to demonstrate that this is working as intended.
Cheers