@multiformats/multiaddr-to-uri
Version:
Convert a Multiaddr to a URI
66 lines (42 loc) • 2.44 kB
Markdown
[](http://multiformats.io)
[](https://codecov.io/gh/multiformats/js-multiaddr-to-uri)
[](https://github.com/multiformats/js-multiaddr-to-uri/actions/workflows/js-test-and-release.yml?query=branch%3Amain)
> Convert a Multiaddr to a URI
This module allows easy conversion of Multiaddrs to string URIs.
```js
import { multiaddrToUri } from '@multiformats/multiaddr-to-uri'
console.log(multiaddrToUri('/dnsaddr/protocol.ai/https'))
// -> https://protocol.ai
console.log(multiaddrToUri('/ip4/127.0.0.1/tcp/8080'))
// -> http://127.0.0.1:8080
console.log(multiaddrToUri('/ip4/127.0.0.1/tcp/8080', { assumeHttp: false }))
// -> tcp://127.0.0.1:8080
```
Note:
- When `/tcp` is the last (terminating) protocol HTTP is assumed by default (implicit `assumeHttp: true`)
- this means produced URIs will start with `http://` instead of `tcp://`
- passing `{ assumeHttp: false }` disables this behavior
- Might be lossy - e.g. a DNSv6 multiaddr
- Can throw if the passed multiaddr:
- is not a valid multiaddr
- is not supported as a URI e.g. circuit
```console
$ npm i @multiformats/multiaddr-to-uri
```
Loading this module through a script tag will make its exports available as `MultiformatsMultiaddrToUri` in the global namespace.
```html
<script src="https://unpkg.com/@multiformats/multiaddr-to-uri/dist/index.min.js"></script>
```
- <https://multiformats.github.io/js-multiaddr-to-uri>
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](https://github.com/multiformats/js-multiaddr-to-uri/LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT ([LICENSE-MIT](https://github.com/multiformats/js-multiaddr-to-uri/LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.