V8 stacktrace API-based information tool.
npm install callsite-tracker
var tracker = ;// Of course! this is a mocha test file!// its just to illustrate things better.
which will output
module: 'mocha'scope: 'mocha/lib'path: '/home/jcm/npm/lib/node_modules/mocha/lib/runner.js'isCore: falseisNative: falsesite:receiver: Object fun: Function: callFn pos: 5274receiver: Object fun: Function pos: 5169receiver: Object fun: Function pos: 7711
var tracker = require('callsite-tracker')([frames, origin])
framesif specified should be an
originif specified should be a function.
- if no arguments, the default number of
originis the module itself. The returned stack is sliced by one.
The instance returned can walk through the recorded stack on a simple manner
var tracker = ;var tracked = ; // <- creates the `tracker` instancetracked // looks the same as the above output giventracked // will move to the second element of the sites array// and get the same information overriding// whatever value the properties had
Each tracker instance has attached the stack trace with the callsites. I called each "step" of the
stack a frame. So if you had
each line represents in my head a
callsite frame. The first frame would be
that of the
module: the module from which that frame comes from.
scope: the module's module (thats why is called scope you know).
__filenameof the frame.
isCore: was the
node's core module?
isNative: was a native
sites: an array of callsites.
tracker.sites elements are callsites so they have their own
api. Go and see the avaliable methods of the V8 stack trace api like:
on that link.
You want to know stuff.
By default two frames are recorded, though you can even lower it to one providing a function from which start.
inspirated and based on
It serves for the same use cases implemented on this cool modules
I've been using those a lot.