ah-prune

1.2.0 • Public • Published

ah-prune build status

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 function function (type, activity) if supplied will be used as the predicate function to determine if an activity is removed. Return true 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

Readme

Keywords

none

Package Sidebar

Install

npm i ah-prune

Weekly Downloads

3

Version

1.2.0

License

MIT

Last publish

Collaborators

  • thlorenz