url-canon

1.0.1 • Public • Published

url-canon

Normalizes URL's to prevent duplicates that point to the same server resource.

var urlCanon = require('url-canon')
urlCanon('http://www.google.com/?b=hey&a=yo&#')
// => returns 'http://www.google.com/?&a=yo&b=hey'

Installation

npm install url-canon

Features

  • Sorts query parameters into alphabetical order
  • Decodes needlessly percent-encoded ASCII
  • Removes default ports for http/https
  • Lowercases the protocol and hostname
  • Removes trailing # and ?
  • Uppercases percent encoded bytes

Compatibility

Tests pass in

  • IE8+
  • Chrome
  • Firefox
  • Opera

Does not support Node.js (as it uses an anchor element for parsing).

Known issues

Internationalised URLs such as http://見.香港/ are converted to punycode form in Chrome but not in Firefox and IE. Conversely punycode such as http://xn--nw2a.xn--j6w193g/ is decoded automatically in Firefox and IE to http://見.香港/. It is very hard to standardise these URLs and they have not been handled.

Readme

Keywords

none

Package Sidebar

Install

npm i url-canon

Weekly Downloads

1

Version

1.0.1

License

ISC

Last publish

Collaborators

  • roberttod
  • qubit