Propagates a unique context ID throughout calls. Similar to Java MDC and the likes.
For node 6+.
Returns a callback, augmented with a unique context UUID. Within this callback, all operations (and their childs) will inherit the unique ID.
tracer.set(() => {
// all nested calls have now access to a unique context ID
console.log(tracer.get()); // you can now log it
});
The following code :
const tracer = require("context-tracer");
function callThings() {
nested();
}
function nested() {
console.log("nested call - stack n°", tracer.get());
}
tracer.set(() => {
console.log("first call - stack n°", tracer.get());
// called within the tracer, and inherits the ID
callThings();
});
Will print :
> first call : stack n°AAAA
> nested call : stack n°AAAA
> npm install context-tracer
- Creates a unique context ID
- provides a context-augmented callback :
- all calls within the callback will have the same context ID
- you only need to call the first function in the callback to propagate the context to its childs
tracer.set(() => {
// all operations called within the tracer will inherit a unique context ID
});
You can nest context augments : the new context ID will override the previous one, only for its callback operations.
- Retrieves current context ID
- Returns a "no context" string if set hasn't been called
console.log("stack n°" + tracer.get());
> stack n°AAAA
While this package supports node 6-7, the underlying architecture is considered experimental for these versions. Read more here.
This project is made using Typescript. To generate the transpiled javascript package, you need to run gulp :
$ gulp
You can run the full test suite with mocha :
$ npm i && npm run test