Socket
Book a DemoInstallSign in
Socket

pear-link

Package Overview
Dependencies
Maintainers
2
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pear-link

Parse Pear Links

latest
Source
npmnpm
Version
4.2.1
Version published
Weekly downloads
868
48.63%
Maintainers
2
Weekly downloads
 
Created
Source

Parse Pear Links. This includes URLs with pear: & file: protocols.

npm install pear-link

The pear: protocol supports the following syntax:

pear://[<fork>.][<length>.]<keyOrAlias>[.<dhash>]<path>[?<search>][#<lochash>]
  • 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 (#).

API

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:

{
  protocol, // The url's protocol. Supported protocols include `pear:` & `file:`
  pathname, // The `some/path` in `pear://key/some/path`. Same as the standard URL pathname
  search,   // The query string in the URL, aka anything after a `?` including the `?`
  hash,     // The fragment part of the URL, eg `#fragment` in `pear://key/path#fragment`. Includes the `#`.
  origin: this.normalize(`${protocol}//${hostname}${pathname}`),
  drive: {
    key,    // The key for the hyperdrive. Usually the `key` 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.
  }
}

Normalizes the link by removing trailing path separators (/).

Expects either

  • a parsed object as returned by plink.parse
  • a hypercore-id-encoding key, eg drive.key - the key in pear://<key> - key may be buffer or string.

Returns a pear:// link as a string.

License

Apache-2.0

FAQs

Package last updated on 14 Oct 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts