1.0.0 • Published 9 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:
eventsan 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.excludetakes precedence over anyincludepaths.
[options]configuration object that gets passed to the NodeStream.Transformconstructor. NoteobjectModeis alwaystruefor allPathGlobobjects.
PathGlob.subscription(events)
A static method on PathGlob that creates a new event subscription map where:
eventsthe same arguments used in thePathGlobconstructor.
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 ofdatapath- a string representing path associated pattern with this event.