ah-prune
v1.2.0
Published
Prune specific types of async hook resources from a collected map.
Downloads
5
Readme
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-prune
API
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
$0
Object options to configure the pruning step$0.activities
Map<Object> the activities to be pruned$0.prune
Set<String> if supplied all activities of types supplied in the Set are removed$0.keep
Set<String> if supplied all activities of types NOT supplied in the Set are removed$0.keepFn
functionfunction (type, activity)
if supplied will be used as the predicate function to determine if an activity is removed. Returntrue
to keep the activity,false
to remove it$0.copy
Boolean if set, the activities are cloned before modification, otherwise they are modified in place, default:true
Returns Map<Object> the pruned activities
License
MIT