Skip to content

multiformats/js-multiaddr-matcher

Repository files navigation

@multiformats/multiaddr-matcher

multiformats.io codecov CI

Match different multiaddr formats

About

This module exports various matchers that can be used to infer the type of a passed multiaddr.

Example

import { multiaddr } from '@multiformats/multiaddr'
import { DNS } from '@multiformats/multiaddr-matcher'

const ma = multiaddr('/dnsaddr/example.org')

DNS.matches(ma) // true - this is a multiaddr with a DNS address at the start

Example

The default matching behaviour ignores any subsequent tuples in the multiaddr. If you want stricter matching you can use .exactMatch:

import { multiaddr } from '@multiformats/multiaddr'
import { DNS, Circuit } from '@multiformats/multiaddr-matcher'

const ma = multiaddr('/dnsaddr/example.org/p2p/QmFoo/p2p-circuit/p2p/QmBar')

DNS.exactMatch(ma) // false - this address has extra tuples after the DNS component
Circuit.matches(ma) // true
Circuit.exactMatch(ma) // true - the extra tuples are circuit relay related

Install

$ npm i @multiformats/multiaddr-matcher

Browser <script> tag

Loading this module through a script tag will make its exports available as MultiformatsMultiaddrMatcher in the global namespace.

<script src="https://unpkg.com/@multiformats/multiaddr-matcher/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

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.