Skip to content

reazen/relude-url

Repository files navigation

relude-url

CircleCI npm

URL utilities with Relude

Documentation

ReludeURL contains data structures and functions for dealing with URIs, URLs, etc. This library is not currently fully conformant to the RFC 3986 URI spec - it only parses a subset of common absolute URI formats, i.e. formats that are most commonly found in the wild. If you encounter a URI that ReludeURL can't parse correctly, please open an issue with the URI for consideration.

Component types

A URI is broken up into several sub-component types, including Scheme, Authority, UserInfo, Path, etc.

Parsing

GitHub CI [npm

ReludeURL uses ReludeParse to parse URIs. To run a URI parser, you use the standard convention for running a ReludeParse parser, like below:

ReludeURL.URI.parser |> ReludeParse.runParser("https://example.com:80/my/path") // Belt.Result.Ok(URI(...))

Rendering

Once a URI is parsed or constructed, it's often useful to write it back out to a string:

ReludeURL.URI.show(myURI) // http

Manipulation

Parts of the URI can be manipulated using the functions from the target part of the URI. A common operation is to manipulate the query params - this can be done using functions in the URI module, or in the Query/QueryParam/etc. modules.

Developer info

Scripts

> npm run clean
> npm run build
> npm run cleanbuild
> npm run test
> npm run cleantest
> npm run coverage
> npm run cleancoverage
> npm run watch

Publish to npm

> npm version major|minor|patch
> git push origin --follow-tags
> git push upstream --follow-tags
> npm publish
# Create release on GitHub

NixOS

A simple default.nix shell config is provided to avoid issues with OCaml-based binaries and bs-platform.

> nix-shell
%nix%> npm install