From 49226115c873c7f670cfed20e6d10e40aabdfbb6 Mon Sep 17 00:00:00 2001 From: puneeth_aditya_5656 Date: Thu, 7 May 2026 16:08:53 +0530 Subject: [PATCH] Fix parse_query decoding multiple plus signs --- src/gleam_stdlib.mjs | 2 +- test/gleam/uri_test.gleam | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs index ebc52135..4f7f1e2a 100644 --- a/src/gleam_stdlib.mjs +++ b/src/gleam_stdlib.mjs @@ -482,7 +482,7 @@ function unsafe_percent_decode(string) { } function unsafe_percent_decode_query(string) { - return decodeURIComponent((string || "").replace("+", " ")); + return decodeURIComponent((string || "").replaceAll("+", " ")); } export function percent_decode(string) { diff --git a/test/gleam/uri_test.gleam b/test/gleam/uri_test.gleam index 7f556f22..e3a95423 100644 --- a/test/gleam/uri_test.gleam +++ b/test/gleam/uri_test.gleam @@ -517,6 +517,11 @@ pub fn parse_query_string_basic_test() { assert parsed == [#("weebl bob", "1"), #("city", "örebro")] } +pub fn parse_query_string_multiple_spaces_test() { + let assert Ok(parsed) = uri.parse_query("one+two+three=four+five+six") + assert parsed == [#("one two three", "four five six")] +} + pub fn parse_query_string_duplicates_test() { // Duplicates keys not overridden let assert Ok(parsed) = uri.parse_query("a[]=1&a[]=2")