[{"name":"Erl","comment":" Library for parsing and constructing URLs\n\n\n# Types\n\n@docs Url\n\n\n# Parse\n\n@docs parse\n\n\n# Construct\n\n@docs new\n\n\n# Serialize\n\n@docs toString, toAbsoluteString\n\n","unions":[],"aliases":[{"name":"Url","comment":" Record that holds url attributes\n","args":[],"type":"{ protocol : String.String, host : String.String, port_ : Maybe.Maybe Basics.Int, pathname : String.String, query : Erl.Query.Query, hash : String.String }"}],"values":[{"name":"new","comment":" Generate an empty Url record\n\n    Erl.new\n        == { protocol = \"\"\n           , host = \"\"\n           , port_ = Nothing\n           , pathname = \"\"\n           , query = []\n           , hash = \"\"\n           }\n\n","type":"Erl.Url"},{"name":"parse","comment":" Parse an url into a Url record\n\n    Erl.parse \"http://hello.com/users/1?k=1&q=2#a/b\"\n\n    Ok\n        { protocol = \"http\",\n        , host = \"hello.com\",\n        , port_ = Just 2000,\n        , pathname = \"/users/1\",\n        , query = [ (\"k\", \"1\"), (\"q\", \"2\") ]\n        , hash = \"a/b\",\n        }\n\n","type":"String.String -> Result.Result String.String Erl.Url"},{"name":"toAbsoluteString","comment":" Generate a url that starts at the path\n\n    url = { protocol = \"http\",\n          , host = \"www.hello.com\",\n          , port_ = Just 2000,\n          , pathname = \"/users/1\",\n          , query = [ (\"k\", \"1\"), (\"q\", \"2\") ]\n          , hash = \"a/b\",\n          }\n\n    Erl.toAbsoluteString url == \"/users/1?k=1&q=2#a/b\"\n\n","type":"Erl.Url -> String.String"},{"name":"toString","comment":" Generate a url string from an Url record\n\n    url = { protocol = \"http\",\n          , host = \"www.hello.com\",\n          , port_ = Just 2000,\n          , pathname = \"/users/1\",\n          , query = [ (\"k\", \"1\"), (\"q\", \"2\") ]\n          , hash = \"a/b\",\n          }\n\n    Erl.toString url == \"http://www.hello.com:2000/users/1?k=1&q=2#a/b\"\n\n","type":"Erl.Url -> String.String"}],"binops":[]},{"name":"Erl.Query","comment":" Functions to work with a Query record\n\n\n# Types\n\n@docs Query\n\n\n# Parse\n\n@docs parse, parser\n\n\n# Mutation helpers\n\n@docs add, set, remove\n\n\n# Serialize\n\n@docs toString\n\n\n# Other helpers\n\n@docs getValuesForKey\n\n","unions":[],"aliases":[{"name":"Query","comment":" List holding query string values\n","args":[],"type":"List.List ( String.String, String.String )"}],"values":[{"name":"add","comment":" Adds key/value in query string\n\n    Erl.Query.add key value query\n\nThis doesn't replace existing keys, so if this is a duplicated this key is just added.\n\n","type":"String.String -> String.String -> Erl.Query.Query -> Erl.Query.Query"},{"name":"getValuesForKey","comment":" Gets values for a key in the query\n\n    url = Erl.parse \"?a=1&b=2&a=3\"\n\n    Erl.Query.getQueryValuesForKey \"a\" url.query\n\n    == [\"1\", \"3\"]\n\n","type":"String.String -> Erl.Query.Query -> List.List String.String"},{"name":"parse","comment":" Parse a query string\n\n    Erl.Query.parse \"?a=1&b=2&a=3\" == [ ( \"a\", \"1\" ), ( \"b\", \"2\" ), ( \"a\", \"1\" ) ]\n\n","type":"String.String -> Result.Result String.String Erl.Query.Query"},{"name":"parser","comment":" Query Parser\n","type":"Parser.Parser Erl.Query.Query"},{"name":"remove","comment":" Removes key from query string\n\n    Erl.Query.remove key query\n\n","type":"String.String -> Erl.Query.Query -> Erl.Query.Query"},{"name":"set","comment":" Set key/value in query string, removes any existing one if necessary.\n\n    Erl.Query.set key value query\n\n","type":"String.String -> String.String -> Erl.Query.Query -> Erl.Query.Query"},{"name":"toString","comment":" Convert to a string, this includes '?'\n\n    Erl.Query.toString query == \"?a=1&b=2\"\n\n","type":"Erl.Query.Query -> String.String"}],"binops":[]}]