1.0.0 • Published 8 years ago
good-path-glob v1.0.0
good-path-glob
Glob based event filter stream for Good event from Hapi path.
Usage
good-path-glob contains a PathGlob
stream for filtering good events from hapi path with glob pattern.
Methods
PathGlob(events, [options])
Creates a new PathGlob transform stream where:
events
an object where each key is a valid good event and the value is one of the following:string
- a glob pattern to include when filtering. '*' indicates no filtering.array
- array of path patterns to filter.[]
indicates no filtering.object
- an object with the following valuesinclude
- string or array representing path pattern(s) to include when filteringexclude
- string or array representing path pattern(s) to exclude when filtering.exclude
takes precedence over anyinclude
paths.
[options]
configuration object that gets passed to the NodeStream.Transform
constructor. NoteobjectMode
is alwaystrue
for allPathGlob
objects.
PathGlob.subscription(events)
A static method on PathGlob
that creates a new event subscription map where:
events
the same arguments used in thePathGlob
constructor.
Note: each subscription object is an instance of Minimatch
class which helps check glob patterns.
const PathGlob = require('good-path-glob');
PathGlob.subscription({ request: '*', response: ['*.json', '/api/**'] });
// Results in
// {
// request: { include: [], exclude: [] },
// response: { include: [ Minimatch('*.json'), Minimatch('/api/**') ], exclude: [] }
// }
PathGlob.subscription({ request: { exclude: '/debug/**' }, response: { include: '/api/**', exclude: ['/docs/**', '*.css'] } });
// Results in
// {
// request: { include: [], exclude: [ Minimatch('debug/**') ] },
// response: { include: [ Minimatch('api/**') ], exclude: [ Minimatch('/docs/**'), Minimatch('*.css') ] }
// }
Useful for creating an event subscription to be used with PathGlob.filter
if you do not plan on creating a pipeline coming from good and instead want to manage event filtering manually.
PathGlob.filter(subscription, data)
Returns true
if the supplied data.event
+ data.path
should be reported based on subscription
where:
subscription
- a subscription map created byPathGlob.subscription()
.data
- event object emitted from good/hapi which may contain the following keys:event
- a string representing the event name ofdata
path
- a string representing path associated pattern with this event.