universal-parse-url
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

universal-parse-url

NPM Travis Build Status Commitizen Friendly MIT License

Sauce Labs Build Status

A universal URL parser for Node.js and browser environments with a minimal footprint (gzipped only 600 bytes for the browser version).

Installation

Install with npm:

npm install --save universal-parse-url

Note: The installed node module also includes a d.ts file, and thus works out of the box with TypeScript.

Usage

import { parseURL } from 'universal-parse-url';
const url = parseURL('http://www.example.com:1234/foo?bar=1#baz');

The resulting url object looks like this:

{
  hash: '#baz',
  host: 'www.example.com:1234',
  hostname: 'www.example.com',
  href: 'http://www.example.com:1234/foo?bar=1#baz',
  pathname: '/foo',
  port: '1234',
  protocol: 'http:',
  search: '?bar=1'
}

How It Works

  • In Node.js parseURL just delegates to URL.parse.
  • In browser environments:
    • An HTMLAnchorElement is created initially (with document.createElement('a')).
    • When parseURL is called, the href attribute of this element is set to the given url string.
    • The element is then used to extract the URL details.

Requirements

If you plan on targeting browser environments as well, you need to use a bundler like Webpack, Browserify or Rollup (with rollup-plugin-node-resolve) that makes use of the browser field in the package.json.

Caveats

To keep universal-parse-url as small and simple as possible, only the URL details that are available in Node’s URL object as well as HTMLAnchorElement are supported (see the above example).

Package Sidebar

Install

npm i universal-parse-url

Weekly Downloads

120

Version

1.0.2

License

MIT

Last publish

Collaborators

  • unstubbable