#async-hook-jl
Inspect the life of handle objects in node
Documentation
This is high level abstraction of the currently undocumented node API called
AsyncWrap. It patches some issues, makes the API more uniform and allows multiply
hooks to be created.
I personally hope that most of this will make it into nodecore, but for now
it exists as an userland module.
For the details of how AsyncWrap works and by extension how this module works,
please see the semi-official AsyncWrap documentation:
https://github.com/nodejs/diagnostics/blob/master/tracing/AsyncWrap/README.md
const asyncHook = require('async-hook-jl');
Hooks
The function arguments are:
function init(uid, handle, provider, parentUid, parentHandle) { }
function pre(uid, handle) { }
function post(uid, handle, didThrow) { }
function destroy(uid) { }
To add hooks:
asyncHook.addHooks({ init, pre, post, destroy });
To remove hooks:
asyncHooks.removeHooks({ init, pre, post, destroy });
All properties in the hooks object that addHooks
and removeHooks
takes are
optional.
Providers
The providers map is exposed as:
asyncHook.providers[provider];
Enable and disable
You can enable and disable all hooks by using asyncHook.enable()
and
asyncHook.disable()
. By default it is disabled.
Be careful about disabling the hooks, this will most likely conflict with other
modules that uses async-hook-jl
.