UrlBuilder
branch | build | coverage |
---|
main | | |
develop | | |
Utility to help building http urls for your API.
Installing
Using npm:
npm install http-url-builder
Using bower:
bower install http-url-builder
Using yarn:
yarn add http-url-builder
To install the latest version with security updates applied use @dev
tag when installing:
npm install http-url-builder@dev
Using bower:
bower install http-url-builder@dev
Using yarn:
yarn add http-url-builder@dev
Examples
Basic setup:
import { UrlBuilder } from 'http-url-builder';
const url = UrlBuilder.create('localhost', 8080).build();
console.log(url);
Build an url:
const url = UrlBuilder.create('localhost', 8080)
.addPath('foo')
.addPathVariable('John Doe')
.addPath('bar')
.addQueryParam('baz', 'qux')
.addQueryParam('test', 123)
.build();
console.log(url);
addPath()
does not allow spaces in the url and automatically trims the path value to prevent errors.
addPathVariable()
instead allows to insert spaces since query params do not need to follow the strict rules applied to paths. Moreover, /
characters will be replaced with %2F
.
const url = UrlBuilder.create('localhost', 8080)
.addPath('example')
.addPathVariable(' John/Doe ')
.addPath('operation')
.build();
console.log(url);
addQueryParam()
accepts strings, numbers, booleans and objects. Objects will be converted to their JSON representation to create the url.
const obj = {
foo: 'bar',
baz: 0,
qux: true,
};
const url = UrlBuilder.create('localhost', 8080)
.addPath('example')
.addQueryParam('myObj', obj)
.build();
console.log(url);
Each addPath()
, addPathVariable()
and addQueryParam()
operation creates a new UrlBuilder instance.
Thanks to immutability, paths can not be accidentally modified:
const base = UrlBuilder.create('localhost', 8080).addPath('base');
const fooUrl = base.addPath('foo');
const barUrl = base.addPath('bar');
console.log(base.build());
console.log(fooUrl.build());
console.log(barUrl.build());
If you already have an url, you can convert it to an UrlBuilder instance by using its constructor:
const url = new UrlBuilder("https://localhost:8080/my/path");
License
MIT