@gustavnikolaj/frame-popper

1.0.1 • Public • Published

Frame Popper

npm version Build Status

Only intended for use in Node.js.

When using the invariant module the errors are thrown with a custom property called framesToPop. The idea is that your error handler will know to pop off the additional stacks from the top. That kind of errors also come from react (although usage in browsers is not supported by this module).

According to this tweet it is used by an internal error logging system at facebook.

It's a nice idea though, and I think we all deserve to have something pop our irrelevant frames as well.

Limitation: Only working in Node.js

At the moment I don't need this module in the browser, so I took a shortcut and used dirty string manipulation instead of a module which transforms the serialized stacktraces to into proper structured data.

Limitation: Will mutate your errors!

The error that is passed in, is mutated in place NOT cloned.

Installation

npm install --save @gustavnikolaj/frame-popper

... or ...

yarn add @gustavnikolaj/frame-popper

Example:

See the source of the example function that we call.

Without frame popper (source):

$ node examples/withoutFramePopper.js
Invariant Violation: This is a test error.
    at invariant (./node_modules/invariant/invariant.js:40:15)
    at fourthFunction (./examples/deeplyNestedError.js:4:3)
    at thirdFunction (./examples/deeplyNestedError.js:8:10)
    at secondFunction (./examples/deeplyNestedError.js:12:10)
    at firstFunction (./examples/deeplyNestedError.js:16:10)
    at Object.<anonymous> (./examples/withoutFramePopper.js:4:3)

With frame popper (source):

$ node examples/withFramePopper.js
Invariant Violation: This is a test error.
    at fourthFunction (./examples/deeplyNestedError.js:4:3)
    at thirdFunction (./examples/deeplyNestedError.js:8:10)
    at secondFunction (./examples/deeplyNestedError.js:12:10)
    at firstFunction (./examples/deeplyNestedError.js:16:10)
    at Object.<anonymous> (./examples/withFramePopper.js:5:3)

Package Sidebar

Install

npm i @gustavnikolaj/frame-popper

Weekly Downloads

5

Version

1.0.1

License

ISC

Unpacked Size

4.73 kB

Total Files

4

Last publish

Collaborators

  • gustavnikolaj