Simple transform streams useful in creating good data pipelines.
Lead Maintainer: Adam Bretz
good-squeeze is a collection of small transform streams. The Squeeze
stream is useful for filtering events based on the good event options. The SafeJson
stream is useful for stringifying objects to prevent circular object errors.
Creates a new Squeeze transform stream where:
events
an object where each key is a valid good event, and the value is a string or array of strings representing event tags. "*" indicates no filtering.null
andundefined
are assumed to be "*". Defaults to{}
[options]
configuration object that gets passed to the NodeStream.Transform
constructor. NoteobjectMode
is alwaystrue
for allSqueeze
objects.
The transform stream only passes on events that satisfy the event filtering based on event name and tags. If the upstream event doesn't satisfy the filter, it is not continued down the pipe line.
A static method on Squeeze
that creates a new event subscription map where:
events
an object where each key is a valid good event, and the value is a string or array of strings representing event tags. "*" indicates no filtering.null
andundefined
are assumed to be "*".
const Squeeze = require('good-squeeze');
Squeeze.subscription({ log: 'user', ops: '*', request: ['hapi', 'foo'] });
// Results in
// {
// log: [ 'user' ],
// ops: [],
// request: [ 'hapi', 'foo', 'hapi', 'foo' ]
// }
Useful for creating an event subscription to be used with Squeeze.filter
if you do not plan on creating a pipeline coming from good and instead want to manage event filtering manually.
Returns true
if the supplied data.event
+ data.tags
should be reported based on subscription
where:
subscription
- a subscription map created bySqueeze.subscription()
.data
- event object emitted from good/hapi which should contain the following keys:event
- a string representing the event name ofdata
tags
- an array of strings representing tags associated with this event.
Creates a new SafeJson transform stream where:
[options]
configuration object that gets passed to the NodeStream.Transform
constructor. NoteobjectMode
is alwaystrue
for allSqueeze
objects.[stringify]
configuration object for controlling how stringify is handled.separator
- string to append to each message. Defaults to "\n".
The transform stream stringifys the incoming data and pipes it forward. It will not crash in the cases of circular references and will instead include a "~Circular" string in the result.