1.2.0 • Published 9 years ago
ah-prune v1.2.0
ah-prune 
Prune specific types of async hook resources from a collected map.
const prune = require('ah-prune')
// Removing all TickObject
const noticks = prune({ activities, prune: new Set([ 'TickObject' ]) })
// Removing everything but TCPWRAP
const onlytcpwrap = prune({ activities, keep: new Set([ 'TCPWRAP' ]) })
// Removing everything but a specific id via a custom keep function
const onlytcp1 = prune({
activities
, keepFn(type, activity) { return activity.id === 'tcp:1' }
})Installation
npm install ah-pruneAPI
prune
Prunes the supplied async hook activities according to prune or
keep option.
It repoints the triggerIds in the process so that the graph is
preserved.
Only either prune or keep maybe supplied at once.
The activities passed are not modified, instead a clone is made before
the pruning step, unless copy is set to false
Parameters
$0Object options to configure the pruning step$0.activitiesMap<Object> the activities to be pruned$0.pruneSet<String> if supplied all activities of types supplied in the Set are removed$0.keepSet<String> if supplied all activities of types NOT supplied in the Set are removed$0.keepFnfunctionfunction (type, activity)if supplied will be used as the predicate function to determine if an activity is removed. Returntrueto keep the activity,falseto remove it$0.copyBoolean if set, the activities are cloned before modification, otherwise they are modified in place, default:true
Returns Map<Object> the pruned activities
License
MIT