node package manager

parse-stack

Parses the stack property of errors. Cross-browser.

Overview

Cross-browser parsing of the stack property of error objects.

What it does: Parse the stack property into name, file path, line number and column number (if available). Cross-browser.

What it does not: Normalize names and file paths, or account for possible browser differences in line and column counting.

Cross-browser, eh? Exactly how cross-browser is it? See support.md.

Usage

var stack
// Generally you don't need to try/catch. 
try {
stack = parseStack(errorObject)
} catch (error) {
console.log("The format of the `stack` property is invalid or unrecognized by `parseStack`.")
}
 
if (stack === null) {
console.log("The `stack` property is not supported.")
} else {
stack.forEach(function (stackLine) {
console.log(
stackLine.name,
stackLine.filepath,
stackLine.lineNumber,
stackLine.columnNumber
)
})
}

Installation

npm install parse-stack or component install lydell/parse-stack

CommonJS: var parseStack = require("parse-stack")

AMD and regular old browser globals: Use ./parse-stack.js

Tests

Node.js: npm test

Browser: Open ./test/browser/index.html

License

LGPLv3.