Fast url parsing with a tiny footprint and extensive browser support
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
.editorconfig
.gitignore
.jshintignore
.jshintrc
autoescape.js
bower.json
changelog.markdown
getComponentEscaped.js
license
omnibox.js
package.json
querystring.js
readme.markdown

readme.markdown

omnibox

Fast url parsing with a tiny footprint and extensive browser support

This module is mostly a re-implementation of fast-url-parser designed to make the footprint smaller and the browser support broader.

install

npm install omnibox --save
bower install omnibox --save

assumptions

Use omnibox only if you don't need any of the features shown below.

  • Support for malformed input
  • Support for a protocol other than http, https
  • Basic authentication support http://user:pwd@domain.com
  • IDNA support (special characters in host)
  • options
  • Anything that's not provided by the .parse method

If you need any of those features, use the more comprehensive fast-url-parser instead. Note that browser support is smaller because they rely on Uint8Array, and their footprint is also larger.

omnibox.parse(url)

Parses a URL string and returns its different components. The query string is parsed by default. There's no option that prevents this behavior.

Example

Result for omnibox.parse('https://stompflow.com/foo?bar=23&baz=abc#hash-parts').

{ protocol: 'https',
  hostname: 'stompflow.com',
  host: 'stompflow.com',
  port: undefined,
  pathname: '/foo',
  path: '/foo?bar=23&baz=abc',
  search: '?bar=23&baz=abc',
  hash: '#hash-parts',
  query: { bar: '23', baz: 'abc' } }

omnibox/querystring

You could also just parse the query string part. See the example below.

var parse = require('omnibox/querystring').parse
parse('bar=23&baz=abc')
// <- { bar: '23', baz: 'abc' }

License

MIT