A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.npmjs.com/package/stack-trace below:

stack-trace - npm

stack-trace

Get v8 stack traces as an array of CallSite objects.

Install Usage

The stack-trace module makes it easy for you to capture the current stack:

import { get } from 'stack-trace';
const trace = get();

expect(trace[0].getFileName()).toBe(__filename);

However, sometimes you have already popped the stack you are interested in, and all you have left is an Error object. This module can help:

import { parse } from 'stack-trace';
const err = new Error('something went wrong');
const trace = parse(err);

expect(trace[0].getFileName()).toBe(__filename);

Please note that parsing the Error#stack property is not perfect, only certain properties can be retrieved with it as noted in the API docs below.

Long stack traces

stack-trace works great with long-stack-traces, when parsing an err.stack that has crossed the event loop boundary, a CallSite object returning '----------------------------------------' for getFileName() is created. All other methods of the event loop boundary call site return null.

API stackTrace.get([belowFn])

Returns an array of CallSite objects, where element 0 is the current call site.

When passing a function on the current stack as the belowFn parameter, the returned array will only include CallSite objects below this function.

stackTrace.parse(err)

Parses the err.stack property of an Error object into an array compatible with those returned by stackTrace.get(). However, only the following methods are implemented on the returned CallSite objects.

Note: Except getFunctionName(), all of the above methods return exactly the same values as you would get from stackTrace.get(). getFunctionName() is sometimes a little different, but still useful.

CallSite

The official v8 CallSite object API can be found [here][https://github.com/v8/v8/wiki/Stack-Trace-API#customizing-stack-traces]. A quick excerpt:

A CallSite object defines the following methods:

License

stack-trace is licensed under the MIT license.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4