babel-plugin-try-catch-error-report v0.1.0
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);
}
}