Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

babel-plugin-onerror

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-onerror

Experimental plugin for exception collection via babel

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

babel-plugin-onerror

The project is experimental in nature, with a unified, automated anomaly capture and reporting scheme

under develop!

inspired by jacksky007

Front-end engineers need to quickly and accurately locate the exception code, so we need a front-end anomaly monitoring system.

We have some options:

  1. window.onerror

Global interception is not reliable, such as "Script Error".

Fortunately, we can solve this problem through a cross-domain solution

<script crossorigin src='...'></script>
//Access-Control-Allow-Origin: '*'
  1. try...catch... or promise().catch()

    The exception log report can be finely controlled. The problem is that the error stack information is not uniform.

    For asynchronous methods, because the execution stack is different, it is impossible to catch exceptions (trycatch), etc.

  2. ...

about

so there a cool plan:

babel!

Babel contains a loc information, including the line number and column number.

we can wrap a unified exception information, including function name, file name, error information, line number, column number, and more...

{
  row: 12,
  col: 34,
  fileName: 'xxx.js',
  functionName: 'xxx',
  error: {
    ...
  }
}

automatic function at compile stage The package is flexibly controlled by a symbol such as /*nocatch*/.

const test = () => {
  console.log('hello world!')
}

will be converted into:

const test = () => {
  try{
    console.log('hello world!')
  }catch(e){
    someReporter(e)
  }
}

if you code like this, it's not work. so more flexible!

const test /*nocatch*/ = () => {...} // will not be converted

end

These are the things the project is doing, and of course there are a lot of imperfections that need everyone's help to guide.

I will continue to improve the project and add the test code

features

  • support flexible /*no-?catch*/i!

todos

  • Performance issues with try...catch..

  • File size will increase 5%-15%

  • promise

  • react or vue ...

Keywords

FAQs

Package last updated on 17 Oct 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc