stack-slice
Version:
Slice a file or directory from the middle of an Error stack trace
70 lines (42 loc) • 2.03 kB
Markdown
file or directory from the middle of an Error stack trace
Sometimes you get an error at a point when you are the middle man, and you want to remove your function from the stack.
usualy if you are a masheling function and dont want to litter the stack with your implementation.
It is too late to use `captureStackTrace` thus this allows you to splice your call sites out of the stack.
``` javascript
var stackSlice = require('stack-slice'),
error = new Error('BANG!!!');
// Assume error.stack is the following
// Error: BANG!!!
// at run (/foo/bar/myCoolModule/node_modules/someOtherModule/node_modulesrun.js:11:11)
// at foo (/foo/bar/myCoolModule/node_modules/someOtherModule/run.js:11:11)
// at bar (/foo/bar/myCoolModule/run.js:11:11)
// at stuff (/foo/bar/myCoolModule/main.js:11:11)
// at processImmediate [as _immediateCallback] (timers.js:11:11)
stackSlice(error, '/foo/bar/myCoolModule/main.js');
// error.stack is now
// Error: BANG!!!
// at run (/foo/bar/myCoolModule/node_modules/someOtherModule/node_modulesrun.js:11:11)
// at foo (/foo/bar/myCoolModule/node_modules/someOtherModule/run.js:11:11)
// at bar (/foo/bar/myCoolModule/run.js:11:11)
// at processImmediate [as _immediateCallback] (timers.js:11:11)
stackSlice(error, '/foo/bar/myCoolModule/node_modules/someOtherModule', true);
// error.stack is now
// Error: BANG!!!
// at bar (/foo/bar/myCoolModule/run.js:11:11)
// at processImmediate [as _immediateCallback] (timers.js:11:11)
```
``` javascript
childModule.run(functionFromParentModule, function(error, result){
if(error){
// remove all callsite for this module leaving parent and child
stackSlice(error, __dirname, true);
return callback(error);
}
callback(null, result);
});
```
Slice a