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 -Dor
yarn add babel-plugin-try-catch-error-report -DVia .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);
}
}