A URL parsing and construction library for ELM
parse a url string-- Given a url string
url = "http://sam:[email protected]:3000/products/kids?color=red&age=10#toys/1"
Erl.parse url
-- Returns a Erl.Url record:
{
protocol: "http",
username: "sam",
password: "pass",
host: ["api", "example", "com"],
port': 3000,
path: ["products", "kids"],
hash: ["toys", "1"],
query: Dict {
"color": "red",
"age": "10"
}
}See MDN for more details (https://developer.mozilla.org/en-US/docs/Web/API/Location). Note that in MDN query is called search.
new-- Construct an empty Erl.Url record:
url =
Erl.new-- Modify the protocol
{ url | protocol <- "https" }
-- Modify host
{url | host <- ["api", "acme", "com"] }
-- Modify port
{ url | port' <- 9000 }
-- Modify path
{url | path <- ["users", "1"] }
-- Modify hash
{url | hash <- ["!", "user", "1"] }
-- Clear query string
Erl.clearQuery url
-- Add one query string key/value (patches previous query string)
Erl.addQuery "key" "value" url
-- Remove one query string key/value
Erl.removeQuery "key" url
-- Replaces query string with key/value (removes any previous keys)
Erl.setQuery "key" "value" urltoString-- Given a Erl.Url record (url):
Erl.toString url
-- Returns the url as string:
"http://www.foo.com:2000/users/1?k=2&q=1#a/b"Documentation at package.elm-lang.org
elm-package install
npm i
npm test7.0.0 Hash goes after query as per https://url.spec.whatwg.org/
6.0.0 setQuery replaces the whole query, Added addQuery and removeQuery
5.0.1 setQuery removes the key when passed an empty value
5.0.0 Renamed fragment to hash to aling with the MDN documentation better