1.0.2 • Published 8 years ago
universal-parse-url v1.0.2
universal-parse-url
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-urlNote: 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
parseURLjust delegates to URL.parse. - In browser environments:
- An HTMLAnchorElement is created initially (with
document.createElement('a')). - When
parseURLis called, thehrefattribute of this element is set to the given url string. - The element is then used to extract the URL details.
- An HTMLAnchorElement is created initially (with
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).