0.0.5 • Published 2 years ago

ant-path-matcher v0.0.5

Weekly downloads
421
License
MIT
Repository
github
Last release
2 years ago

Ant-style Path Matcher

An implementation for Ant-style path patterns.
Part of this mapping code has been kindly borrowed from Apache Ant and Spring Framework.

The mapping matches URLs using the following rules:

  • ? matches one character
  • * matches zero or more characters
  • ** matches zero or more directories in a path
  • {spring:a-z+} matches the regexp a-z+ as a path variable named "spring"

Some examples:

  • com/t?st.jsp — matches com/test.jsp but also com/tast.jsp or com/txst.jsp
  • com/*.jsp — matches all .jsp files in the com directory
  • com/**/test.jsp — matches all test.jsp files underneath the com path
  • org/springframework/*/.jsp — matches all .jsp files underneath the org/springframework path
  • org/**/servlet/bla.jsp — matches org/springframework/servlet/bla.jsp but also org/springframework/testing/servlet/bla.jsp and org/servlet/bla.jsp
  • com/{filename:\w+}.jsp will match com/test.jsp and assign the value test to the filename variable

Installation

npm install ant-path-matcher --save

Usage

// or: import AntPathMatcher from 'ant-path-matcher'
var AntPathMatcher  = require('ant-path-matcher')

var matcher = new AntPathMatcher() ;

function match( pattern , path) {
 
  console.log( pattern , path , matcher.match( pattern,path)) ;
}

match( '/path/**/?z','/path/x/y/z/xyz') ;

match('/foo/{id}/bar','/foo/1/bar') ;