https://github.com/multiformats/js-multiaddr-matcher
Match different multiaddr formats
https://github.com/multiformats/js-multiaddr-matcher
Last synced: about 1 year ago
JSON representation
Match different multiaddr formats
- Host: GitHub
- URL: https://github.com/multiformats/js-multiaddr-matcher
- Owner: multiformats
- License: other
- Created: 2023-08-03T11:03:10.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-28T13:12:52.000Z (about 1 year ago)
- Last Synced: 2025-04-08T18:51:49.339Z (about 1 year ago)
- Language: TypeScript
- Size: 385 KB
- Stars: 0
- Watchers: 10
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @multiformats/multiaddr-matcher
[](http://multiformats.io)
[](https://codecov.io/gh/multiformats/js-multiaddr-matcher)
[](https://github.com/multiformats/js-multiaddr-matcher/actions/workflows/js-test-and-release.yml?query=branch%3Amain)
> Match different multiaddr formats
# About
This module exports various matchers that can be used to infer the type of a
passed multiaddr.
## Example
```ts
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`:
```ts
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
```console
$ npm i @multiformats/multiaddr-matcher
```
## Browser `` tag
Loading this module through a script tag will make its exports available as `MultiformatsMultiaddrMatcher` in the global namespace.
```html
<script src="https://unpkg.com/@multiformats/multiaddr-matcher/dist/index.min.js">
```
# API Docs
-
# License
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](https://github.com/multiformats/js-multiaddr-matcher/LICENSE-APACHE) / )
- MIT ([LICENSE-MIT](https://github.com/multiformats/js-multiaddr-matcher/LICENSE-MIT) / )
# 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.