Cloner

Creates a Cloner instance which is just a thin wrapper on top of facile-clone and clones an object preserving Buffers and strings according to the options supplied.

new Cloner($0: Object)
Parameters
$0 (Object) options applied when cloning objects
Name Description
$0.bufferLength number? (default 0) determines how many elements of Buffers are captured. By default not Buffer data is captured.
$0.stringLength number? (default 0) determines how much of each string is captured. By default no string data is captured.

cloner.clone

Clones the object according to the options supplied in the constructor.

cloner.clone(x: Object): Object
Parameters
x (Object) the object to clone
Returns
Object: the cloned object

ResourceProcesor

Creates an instance of ResourceProcessor. Never call this directly, instead extend it to create a specific processor for your particular resource type, i.e. NetworkResourceProcessor.

Makes sure that each resource is only processed once.

new ResourceProcesor($0: Object)
Parameters
$0 (Object) options specifying if arguments and function source are captured and how they are cloned
Name Description
$0.cloner Cloner used to clone the resource information
$0.captureArguments Boolean? (default false) if true arguments of callbacks are captured when they are processed.
$0.captureSource Boolean? (default false) if true the source code of callbacks is captured when they are processed.

resourceProcessor.cleanAllResources

Cleans up all captured resources which means that they are processed, meaningful data extracted and the reference to the actual resource removed so it can be GCed.

resourceProcessor.cleanAllResources(activities: Object, collectFunctionInfo: Boolean?)
Parameters
activities (Object) the activities whose resources should be cleaned
collectFunctionInfo (Boolean? = false) if true it will collect info of all functions found on the hooks resources.

resourceProcessor.cleanupResource

Cleans the particular resource of the activity found by the uid as part of the activities. If the uid isn't found in the activities or the activity is null this function returns without doing anything.

resourceProcessor.cleanupResource(uid: (Number | String), activities: Map<(Number | String), Object>, collectFunctionInfo: Boolean?)
Parameters
uid ((Number | String)) the id that identifies the activity whose resource should be cleaned
activities (Map<(Number | String), Object>) the activities that contain the activity whose resource should be cleaned
collectFunctionInfo (Boolean? = false) if true it will collect info of all functions found on the hooks resources.

scoutFunctions

Scouts functions using function-scout and then adapts the data according to the supplied options. In the process clones function arguments as well and appends them to the returned function info

This function is used by the ResourceProcessor and most likely you won't have to call it directly.

Sample return value:

 [ { path: [ 'owner', '_events', 'connection' ],
     key: 'connection',
     level: 2,
     info:
      FunctionOrigin {
        file: '/Volumes/d/dev/js/async-hooks/ah-net/test/one-tcp-server.listen+close.js',
        line: 25,
        column: 21,
        inferredName: '',
        name: 'onconnection' },
     id: 2,
     arguments: null }]
scoutFunctions(ctx: Object, uid: Number, $0: Object): Array<Object>
Parameters
ctx (Object) the context that should be scouted for functions
uid (Number) the id which is appended to each function info
$0 (Object) options specifying if arguments and function source are captured and how they are cloned
Name Description
$0.captureArguments Boolean? (default false) if true arguments of callbacks are captured when they are processed.
$0.captureSource Boolean? (default false) if true the source code of callbacks is captured when they are processed.
$0.cloner Cloner used to clone the function arguments
$0.name String? (default null) if supplied it will be prepended to all function paths
Returns
Array<Object>: array of function information elements, one for each function encountered