Socket
Socket
Sign inDemoInstall

http-url-builder

Package Overview
Dependencies
0
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    http-url-builder

Utility to help building http urls


Version published
Weekly downloads
2.2K
decreased by-1.48%
Maintainers
1
Install size
33.0 kB
Created
Weekly downloads
 

Readme

Source

UrlBuilder

branchbuildcoverage
mainlint-and-testCoverage Status
developlint-and-testCoverage Status

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);
// https://localhost:8080

Build an url:

// 'false' uses 'http' instead of 'https'
const url = UrlBuilder.create('localhost', 8080/*, false*/)
    .addPath('foo')
    .addPathVariable('John Doe')
    .addPath('bar')
    .addQueryParam('baz', 'qux')
    .addQueryParam('test', 123)
    .build();

console.log(url);
// https://localhost:8080/foo/John Doe/bar?baz=qux&test=123

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')
    // 'true' will trim the path variable as it happens with .addPath()
    .addPathVariable(' John/Doe '/*, true*/)
    .addPath('operation')
    .build();

console.log(url);
// https://localhost:8080/example/ John%2FDoe /operation

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);
// https://localhost:8080/example?myObj={"foo":"bar","baz":0,"qux":true}

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());   // https://localhost:8080/base
console.log(fooUrl.build()); // https://localhost:8080/base/foo
console.log(barUrl.build()); // https://localhost:8080/base/bar

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

Keywords

FAQs

Last updated on 14 Aug 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc