error-stack2

Parse and manipulate error.stack

Usage no npm install needed!

<script type="module">
  import errorStack2 from 'https://cdn.skypack.dev/error-stack2';
</script>

README

Build Status Coverage

error-stack

Parse and manipulate error.stack

Install

$ npm i error-stack

Usage

const parse = require('error-stack')
const {stack} = new Error('foo')

console.log(stack)
// Error: foo
//     at repl:1:11
//     at Script.runInThisContext (vm.js:123:20)

const parsed = parse(stack)

parsed.type // Error

parsed.message  // foo

parsed.traces
// [
//   {
//     callee: undefined,
//     source: 'repl',
//     line: 1,
//     col: 11
//   },
//   {
//     callee: 'Script.runInThisContext',
//     source: 'vm.js',
//     line: 123,
//     col: 20
//   }
// ]

parsed
.filter(({callee}) => !!callee)
.format()
// Error: foo
//     at Script.runInThisContext (vm.js:123:20)

parsed.type string

Error type

parsed.message string

The message used by Error constructor

parsed.traces Array<Trace>

interface Source {
  // The source of the the callee
  source: string
  line?: number
  col?: number
}

interface Trace extends Source{
  callee: string
  // Whether the callee is 'eval'
  eval?: boolean
  // The source location inside eval content
  evalTrace: Source
}

parsed.filter(filterFunction): this

  • filterFunction Function the same as the callback function of Array.prototype.filter(callback)

Filters the current traces

parsed.format(): string

Format object parsed

License

MIT