Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Update search/query instead of add #64

techniq opened this Issue · 4 comments

2 participants


I've been trying to find a way to update an existing search argument if it exists, or have it added if it doesn't exist.

Something like:

var uri = URI("http://localhost?foo=bar")
uri.updateSearch("foo", "baz");
uri.toString(); => "http://localhost?foo=baz"

Is this possible with the current API? It seems addSearch will only append another argument, for example:

var uri = URI("http://localhost?foo=bar")
uri.addSearch("foo", "baz");
uri.toString(); => "http://localhost?foo=bar&foo=baz"

I'm using this as a workaround, but it would be nice if there was an exposed function for something like this

if (uri.query().indexOf(key + "=") != -1) {

uri.addQuery(key, value);

you could always use the wuery map:

var data = uri.query(true); = "baz";

I see how that is inconvenient, though… without having the matter thought through, accepting a callback function would be nice:

uri.query(function(data) { = "bar";

I overlooked the uri.query(true) API, which is much cleaner than my indexOf/removeQuery way. It would be nice if there was a 1 line call to set/update instead of just set/append. Not sure if any of these are better APIs

addQuery("foo", "bar", true)
addQuery({foo, "bar"}, true)
setQuery("foo", "bar")

The callback would be nice to have as well, although I think a compliment to addQuery/removeQuery would be best.



Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.