What is stack-utils?
The stack-utils npm package is designed to provide a more structured and easier way to work with stack traces. It can clean up stack traces, provide concise stack trace filtering, and extract meaningful information from them. This can be particularly useful for developers working on debugging applications or enhancing error reporting mechanisms.
What are stack-utils's main functionalities?
Clean stack traces
This feature allows for the cleaning of stack traces by removing unnecessary noise. It can filter out lines that are not useful for debugging purposes, making the stack trace easier to read and understand.
const StackUtils = require('stack-utils');
const stack = new StackUtils();
console.log(stack.clean(new Error().stack));
Capture and filter stack traces
This functionality enables capturing stack traces and applying filters to them. It's useful for creating custom error logging mechanisms that only include relevant information.
const StackUtils = require('stack-utils');
const stack = new StackUtils({cwd: process.cwd(), internals: StackUtils.nodeInternals()});
console.log(stack.capture().map(frame => stack.clean(frame.toString())).join('\n'));
Extract structured information from stack frames
This feature parses stack traces into structured objects, making it easier to programmatically access details about each frame. This can be particularly useful for advanced error reporting or logging systems.
const StackUtils = require('stack-utils');
const stack = new StackUtils();
const frames = stack.parse(new Error().stack);
frames.forEach(frame => {
console.log(`File: ${frame.file}, Line: ${frame.line}, Column: ${frame.column}, Function: ${frame.function}`);
});
Other packages similar to stack-utils
error-stack-parser
Similar to stack-utils, error-stack-parser is designed to parse JavaScript Error stacks. It extracts structured information from stack traces but does not include functionality for cleaning or filtering stack traces. It's more focused on parsing rather than manipulation.
traceback
Traceback provides similar functionality to stack-utils by offering an API to inspect the call stack. However, it focuses more on real-time stack inspection and does not provide as many utilities for cleaning or filtering stack traces.
stack-utils
Captures and cleans stack traces.
Extracted from lib/stack.js
in the node-tap
project
Install
$ npm install --save stack-utils
Usage
const StackUtils = require('stack-utils');
const stack = new StackUtils({cwd: process.cwd(), internals: StackUtils.nodeInternals()});
console.log(stack.clean(new Error().stack));
API
stackUtils(input, [options])
input
Type: string
Lorem ipsum.
options
foo
Type: boolean
Default: false
Lorem ipsum.
License
MIT © James Talmage