@tpmjs/tools-stacktrace-parse
v0.2.0
Published
Parses stack traces into structured frames, handling Node.js and browser formats
Downloads
23
Maintainers
Readme
@tpmjs/tools-stacktrace-parse
Parses stack traces into structured frames, handling Node.js and browser formats.
Installation
npm install @tpmjs/tools-stacktrace-parseUsage
import { stacktraceParse } from '@tpmjs/tools-stacktrace-parse';
import { generateText } from 'ai';
const result = await generateText({
model: yourModel,
tools: {
stacktraceParse,
},
prompt: 'Parse this stack trace and tell me where the error occurred',
});Tool Details
stacktraceParse
Parses a stack trace string into structured frames with file, method name, line number, and column information.
Parameters:
stacktrace(string, required) - The stack trace string to parse (from Node.js or browser)
Returns:
{
frames: Array<{
file: string | null;
methodName: string | null;
lineNumber: number | null;
column: number | null;
arguments: string[];
}>;
errorType: string | null; // e.g., "TypeError", "ReferenceError"
errorMessage: string | null; // The error message
language: 'node' | 'browser' | 'unknown';
totalFrames: number;
summary: string;
}Example Output
Given this stack trace:
TypeError: Cannot read property 'foo' of undefined
at getUserData (/app/user.js:45:12)
at processRequest (/app/server.js:123:5)
at Server.handleRequest (/app/server.js:89:3)Returns:
{
frames: [
{
file: "/app/user.js",
methodName: "getUserData",
lineNumber: 45,
column: 12,
arguments: []
},
{
file: "/app/server.js",
methodName: "processRequest",
lineNumber: 123,
column: 5,
arguments: []
},
{
file: "/app/server.js",
methodName: "Server.handleRequest",
lineNumber: 89,
column: 3,
arguments: []
}
],
errorType: "TypeError",
errorMessage: "Cannot read property 'foo' of undefined",
language: "node",
totalFrames: 3,
summary: "TypeError - Cannot read property 'foo' of undefined - 3 frames"
}Features
- Parses Node.js and browser stack traces
- Extracts error type and message
- Provides structured frame information
- Detects stack trace format (Node.js vs browser)
- Handles various stack trace formats
Supported Formats
- Node.js: Standard V8 stack traces
- Browser: Chrome, Firefox, Safari formats
- Webpack: Bundled stack traces with source maps
License
MIT
