# babel-plugin-try-catch-error-report

> Babel plugin helps enhance the content of catch expression.

Latest version **0.1.0** (published 2019-08-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install babel-plugin-try-catch-error-report
pnpm add babel-plugin-try-catch-error-report
yarn add babel-plugin-try-catch-error-report
bun add babel-plugin-try-catch-error-report
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2019-08-02 |
| First published | 2019-07-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 10.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | mcuking |
| Maintainers | mcuking |
| Keywords | babel-plugin, catch, try |

## Links

- npm: https://www.npmjs.com/package/babel-plugin-try-catch-error-report
- Repository: https://github.com/mcuking/babel-plugin-try-catch-error-report
- Homepage: https://github.com/mcuking/babel-plugin-try-catch-error-report#readme
- Issues: https://github.com/mcuking/babel-plugin-try-catch-error-report/issues
- npm.io page: https://npm.io/package/babel-plugin-try-catch-error-report

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 0.1.0 (latest) — 2019-08-02
- 0.0.9 — 2019-07-29
- 0.0.8 — 2019-07-28
- 0.0.7 — 2019-07-28
- 0.0.6 — 2019-07-28
- 0.0.5 — 2019-07-28
- 0.0.4 — 2019-07-28
- 0.0.3 — 2019-07-28
- 0.0.2 — 2019-07-28
- 0.0.1 — 2019-07-28

## README

# babel-plugin-try-catch-error-report

Babel plugin helps report the error in the try catch statement. You could report error to [Sentry](https://sentry.io/welcome/) , [Bugsnag](https://docs.bugsnag.com/) or any other error monitor platform globally without changing source code.

## Usage

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

or

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

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

```javascript
{
  "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.

```javascript
{
  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']

```javascript
{
  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**: []

```javascript
{
  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

```javascript
{
  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

```javascript
{
  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

```javascript
{
  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

```javascript
{
  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**: []

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

## Example

### From

```javascript
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

```javascript
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](https://github.com/mcuking/babel-plugin-console-enhanced)

---
_Source: https://npm.io/package/babel-plugin-try-catch-error-report · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
