Parse Pear Links
npm install pear-linkParse Pear Links. This includes URLs with pear: & file: protocols.
```
npm install pear-link
The pear: protocol supports the following syntax:
``
pear://[
- fork is the fork id for the underlying hypercore.length
- is the length of the underlying hypercore.keyOrAlias
- is the z32 or hex encoded key or an alias for the key.path
- is zero or more path segments separated by a /.search
- is a query string of non-hierarchical data proceeded by a question?
mark ().lochash
- is the fragment proceeded by a hash (#).
Exports a singleton with methods parse, serialize and normalize.
Supports aliases per pear-aliases.
#### const { protocol, pathname, search, hash, origin, drive } = plink.parse(url)
Parses the provided url string returning an object describing the URL's
properties.
The returned object contains the following:
`pear:
{
protocol, // The url's protocol. Supported protocols include & file:some/path
pathname, // The in pear://key/some/path. Same as the standard URL pathname?
search, // The query string in the URL, aka anything after a including the ?#fragment
hash, // The fragment part of the URL, eg in pear://key/path#fragment. Includes the #.${protocol}//${hostname}${pathname}
origin: this.normalize(),key
drive: {
key, // The key for the hyperdrive. Usually the part of a pear link.`
length, // The hyperdrive length defined in the URL.
fork, // The hyperdrive fork defined in the URL.
hash, // The dhash in the URL.
}
}
#### const normalizedLink = plink.normalize(link)
Normalizes the link by removing trailing path separators (/).
#### const link = plink.serialize({ protocol, pathname, search, hash, drive }) | const link = plink.serialize(key)
Expects either
- a parsed object as returned by plink.parse
- a hypercore-id-encoding key, eg drive.key - the key in pear:// - key may be buffer or string.
Returns a pear://` link as a string.
Apache-2.0