Uri builder
npm install @libj/make-uriA utility function to build a valid URI.
makeUri() API``javascript`
const { makeUri } = require('@libj/make-uri');
Name | Type | Example
-----|------|--------
scheme | string | ` makeUri({ scheme: 'http:' }) `string
authority | | ` makeUri({ authority: 'user@some.host:333' }) `{host: string, user?: string, port?: number }
authority | | ` makeUri({ authority: { host: 'some.com', user: 'user', port: 333 } }) `string
path | | ` makeUri({ path: '/foo/bar' }) `{ template: string, params: Object }
path | | ` makeUri({ path: { template: '/foo/:bar', params: { bar: 'my-bar' } } }) `string[]
path | | ` makeUri({ path: ['foo', 'bar'] }) ` => /foo/barObject
query | | ` makeUri({ query: { foo: 'bar' } }) ` => foo=bar{ $data: Object, $options: { encode: boolean } }
query | | ` makeUri({ query: { $data: { foo: 'bar' }, $options: { encode: true } } }) `{ $data: Object, $options: { encode: { include: string[] } } }
query | | ` makeUri({ query: { $data: { foo: 'bar' }, $options: { encode: { include: ['foo'] } } } }) `{ $data: Object, $options: { encode: { exclude: string[] } } }
query | | ` makeUri({ query: { $data: { foo: 'bar' }, $options: { exclude: { include: ['foo'] } } } }) `Object
fragment | | ` makeUri({ path: '/foo', fragment: { foxy: 'lady' } }) ` => /foo#foxy=lady$data
fragment | See query with $options above |
Basic usage
`javascript`
makeUri('http://some.host/path', { query: { foo: 'bar' } })
// => http://some.host/path?foo=bar
Append path
`javascript``
makeUri('https://host.com/foo', { path: '/bar' })
// => https://host.com/foo/bar