babel-plugin-try-catch-error-report

0.1.0 • Public • Published

babel-plugin-try-catch-error-report

Babel plugin helps report the error in the try catch statement. You could report error to Sentry , Bugsnag or any other error monitor platform globally without changing source code.

Usage

npm install babel-plugin-try-catch-error-report -D

or

yarn add babel-plugin-try-catch-error-report -D

Via .babelrc.js or babel.config.js or babel-loader.

{
  "plugins": [["babel-plugin-try-catch-error-report", options]]
}

options

options need to be an object.

expression

The option add expression into the top of catch statement. Expression is set as an array of string.

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        expression: 'Vue.prototype.$sentry.log'
      }
    ]
  ];
}

exclude

The option determines that the plugin doesn't take effect in the excluded file. Exclude is set as an array of string.

Default: ['node_modules']

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        exclude: ['node_modules']
      }
    ]
  ];
}

include

The option determines that the plugin takes effect in the included file. Include is set as an array of string.

Default: []

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        include: ['src/view']
      }
    ]
  ];
}

needFilename

The option provides control over if add filename into the expression's argument.

Default: true

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        needFilename: true
      }
    ]
  ];
}

needLineNo

The option provides control over if add the code line of the of the try catch statement start.

Default: true

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        needLineNo: true
      }
    ]
  ];
}

needColumnNo

The option provides control over if add the code column of the of the try catch statement start.

Default: false

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        needColumnNo: true
      }
    ]
  ];
}

needContext

The option provides control over if add the invocation context of the try catch statement.

Default: true

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        needContext: true
      }
    ]
  ];
}

windowProperty

The option provides control over add properties of window object into the expression's argument.

Default: []

{
  plugins: [
    [
      'babel-plugin-try-catch-error-report',
      {
        windowProperty: [
          'window.location.href',
          'perfomance.timing',
          'navigator.userAgent'
        ]
      }
    ]
  ];
}

Example

From

export function getLoginInfo() {
  try {
    const userId = 'sds83434';
    getLoginInfo(userId);
  } catch {
    console.log('game over');
  }
}
 
function getImage() {
  try {
    image.src = URL.createObjectURL(file);
  } catch (e) {
    throw Error(e);
  }
}

To

export function getLoginInfo() {
  try {
    const userId = 'sds83434';
    getLoginInfo(userId);
  } catch (error) {
    Vue.prototype.$sentry.log({
      error: error,
      fileName:
        '.../babel-plugin-try-catch-error-report/example/src/hello/index.js',
      lineNo: 11,
      columnNo: 2,
      scope: 'getLoginInfo()'
    });
    console.log('game over');
  }
}
 
function getImage() {
  try {
    image.src = URL.createObjectURL(file);
  } catch (e) {
    Vue.prototype.$sentry.log({
      error: e,
      fileName:
        '.../babel-plugin-try-catch-error-report/example/src/hello/index.js',
      lineNo: 20,
      columnNo: 2,
      scope: 'getImage()'
    });
    throw Error(e);
  }
}

Inspiration

babel-plugin-console-enhanced

Readme

Keywords

Package Sidebar

Install

npm i babel-plugin-try-catch-error-report

Weekly Downloads

0

Version

0.1.0

License

MIT

Unpacked Size

10.5 kB

Total Files

5

Last publish

Collaborators

  • mcuking