$ npm install egg-path-matching
const pathMatching = require('egg-path-matching');
const options = {
ignore: '/api', // string will use parsed by path-to-regexp
// support regexp
ignore: /^\/api/,
// support function
ignore: ctx => ctx.path.startsWith('/api'),
// support Array
ignore: [ ctx => ctx.path.startsWith('/api'), /^\/foo$/, '/bar'],
// support match or ignore
match: '/api',
};
const match = pathMatching(options);
assert(match('/api') === true);
assert(match('/api/hello') === true);
assert(match('/api') === true);
match
{String | RegExp | Function | Array} - if request path hitoptions.match
, will return true, otherwise will return false.ignore
{String | RegExp | Function | Array} - if request path hitoptions.ignore
, will return false, otherwise will return true.
ignore
and match
can not both be presented. and if neither ignore
nor match
presented, the new function will always return true.