instead of
var urlPattern = require('url-pattern');
var pattern = urlPattern.newPattern('/example');
now use
var Pattern = require('url-pattern');
var pattern = new Pattern('/example');
single wildcard matches are now saved directly as a
string on the _
property and not as an array with 1 element:
> var pattern = new Pattern('/api/*');
> pattern.match('/api/users/5')
{_: 'users/5'}
if named segments occur more than once the results are collected in an array.
parsing of named segment names (:foo
) and named segment values now
stops at the next non-alphanumeric character.
it is no longer needed to declare separators other than /
explicitely.
it was previously necessary to use the second argument to new UrlPattern
to
override the default separator /
.
the second argument is now ignored.
mixing of separators is now possible (/
and .
in this example):
> var pattern = new UrlPattern('/v:major(.:minor)/*');
> pattern.match('/v1.2/');
{major: '1', minor: '2', _: ''}
> pattern.match('/v2/users');
{major: '2', _: 'users'}
> pattern.match('/v/');
null
named segments now also match -
, _
,
and %
.
\\
can now be used to escape characters.
made all special chars and charsets used in parsing configurable.
added bower.json and registered with bower as url-pattern
.
issue 15:
named segments now also match the ~
character.
this will break your code if you relied on the fact that named segments
stop matching at ~
!
you can customize the parsing to go back to the old behaviour
the way the parser is customized has changed.
this will break your code if you customized the parser !
read me
updating your code is very easy.
issue 14:
read me
non breaking
issue 11:
read me
non breaking
messages on errors thrown on invalid patterns have changed slightly.