@libj/make-uri
TypeScript icon, indicating that this package has built-in type declarations

1.3.10 • Public • Published

Rationale

A utility function to build a valid URI.

Features

  • RFC-3986 compliant
  • clean API
  • base uri support
  • validation
  • battery of unit tests applied

makeUri() API

Import

const { makeUri } = require('@libj/make-uri');

Parameters

Name Type Example
scheme string makeUri({ scheme: 'http:' })
authority string makeUri({ authority: 'user@some.host:333' })
authority {host: string, user?: string, port?: number } makeUri({ authority: { host: 'some.com', user: 'user', port: 333 } })
path string makeUri({ path: '/foo/bar' })
path { template: string, params: Object } makeUri({ path: { template: '/foo/:bar', params: { bar: 'my-bar' } } })
path string[] makeUri({ path: ['foo', 'bar'] }) => /foo/bar
query Object makeUri({ query: { foo: 'bar' } }) => foo=bar
query { $data: Object, $options: { encode: boolean } } makeUri({ query: { $data: { foo: 'bar' }, $options: { encode: true } } })
query { $data: Object, $options: { encode: { include: string[] } } } makeUri({ query: { $data: { foo: 'bar' }, $options: { encode: { include: ['foo'] } } } })
query { $data: Object, $options: { encode: { exclude: string[] } } } makeUri({ query: { $data: { foo: 'bar' }, $options: { exclude: { include: ['foo'] } } } })
fragment Object makeUri({ path: '/foo', fragment: { foxy: 'lady' } }) => /foo#foxy=lady
fragment See query $data with $options above

Base uri

Basic usage

  makeUri('http://some.host/path', { query: { foo: 'bar' } })
  // => http://some.host/path?foo=bar

Append path

  makeUri('https://host.com/foo', { path: '/bar' })
  // => https://host.com/foo/bar

Package Sidebar

Install

npm i @libj/make-uri

Weekly Downloads

3,314

Version

1.3.10

License

ISC

Unpacked Size

42.8 kB

Total Files

35

Last publish

Collaborators

  • sepo27
  • sepo-one