Remove fromJust usage in URI.Extra.QueryPairs #68
Labels
status: accepted
This issue is now ready to be implemented via a PR.
type: breaking change
A change that requires a major version bump.
type: bug
Something that should function correctly isn't.
Is your change request related to a problem? Please describe.
We ran into a crashing bug in our production front-end where using
print
fromURI.Extra.QueryPairs
would result in an error which we traced down tofromJust
againstencodeURIComponent
's result.Examples:
Both
keyToString
andvalueToString
inURI.Extra.QueryPairs
will error if their usage ofencodeURIComponent
results in aNothing. This can happen if unprintable characters. For example a
Dooli\U001001a9leinside of a string given to
encodeURIComponentresults in
Nothing`.I'm not sure exactly what in the string is causing
encodeURIComponent
to return aNothing
there.Describe the solution you'd like
Broadly it'd be nice if usages of
fromJust
here were eliminated entirely. TheMaybe
ness of the entire API could be represented in its external interface.Alternatively the API could be split into safe and unsafe versions. This is a little tricky since there's already some "unsafe" functions here which are labeled and documented as such for different kinds of safety reasons.
I'm happy to work on a PR but would wanted to get some insight into the appetite for the various solutions to this.
Additional context
In the meantime we're going to mitigate this issue on our end locally by testing our input to the problematic functions against
encodeURIComponent
first - and possibly by additional input filtering elsewhere in our app.The text was updated successfully, but these errors were encountered: