RomanErnst/erl/1.0.0

NOTE: the latest version is 2.1.1

Erl.Query

Functions to work with a Query record

Types

type alias Query =
List ( String, String )

List holding query string values

Parse

parse : String -> Result String Query

Parse a query string

Erl.Query.parse "?a=1&b=2&a=3" == [ ( "a", "1" ), ( "b", "2" ), ( "a", "1" ) ]
parser : Parser Query

Query Parser

Mutation helpers

add : String -> String -> Query -> Query

Adds key/value in query string

Erl.Query.add key value query

This doesn't replace existing keys, so if this is a duplicated this key is just added.

set : String -> String -> Query -> Query

Set key/value in query string, removes any existing one if necessary.

Erl.Query.set key value query
remove : String -> Query -> Query

Removes key from query string

Erl.Query.remove key query

Serialize

toString : Query -> String

Convert to a string, this includes '?'

Erl.Query.toString query == "?a=1&b=2"

Other helpers

getValuesForKey : String -> Query -> List String

Gets values for a key in the query

url = Erl.parse "?a=1&b=2&a=3"


Erl.Query.getQueryValuesForKey "a" url.query


== ["1", "3"]