egg-path-matching
|
---------------
|
|
[![NPM version][npm-image]][npm-url]
|
[![build status][travis-image]][travis-url]
|
[![Test coverage][coveralls-image]][coveralls-url]
|
|
[npm-image]: https://img.shields.io/npm/v/egg-path-matching.svg?style=flat-square
|
[npm-url]: https://npmjs.org/package/egg-path-matching
|
[travis-image]: https://img.shields.io/travis/eggjs/egg-path-matching.svg?style=flat-square
|
[travis-url]: https://travis-ci.org/eggjs/egg-path-matching
|
[coveralls-image]: https://img.shields.io/coveralls/eggjs/egg-path-matching.svg?style=flat-square
|
[coveralls-url]: https://coveralls.io/r/eggjs/egg-path-matching?branch=master
|
|
## Installation
|
|
```bash
|
$ npm install egg-path-matching
|
```
|
|
## Usage
|
|
```js
|
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);
|
```
|
|
### options
|
|
- `match` {String | RegExp | Function | Array} - if request path hit `options.match`, will return true, otherwise will return false.
|
- `ignore` {String | RegExp | Function | Array} - if request path hit `options.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.
|
|
### License
|
|
MIT
|