Можно ли сделать экспортируемую конфигурацию Bugsnag?
Я немного погуглил и прочитал документы, и я не видел случая, чтобы кто-то делал экспортируемую конфигурацию. Мой вариант использования заключается в том, что у меня есть две разные границы ошибок, которые я определяю в своем приложении, и я хочу заключить их в границу ошибки bugsnag. Для этого мне нужно сделать следующее:
UIErrorBoundary1.jsx
import React from 'react';
import Bugsnag from '@bugsnag/js';
import BugsnagPluginReact from '@bugsnag/plugin-react';
const bugsnagConfigOptions = {
apiKey: '...',
plugins: [new BugsnagPluginReact(React)],
...,
};
configOptions.user = {
...
};
Bugsnag.start(bugsnagConfigOptions);
const BugsnagErrorBoundary = Bugsnag.getPlugin('react');
class UIErrorBoundary1 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
UIErrorBoundary2.jsx
import React from 'react';
import Bugsnag from '@bugsnag/js';
import BugsnagPluginReact from '@bugsnag/plugin-react';
const bugsnagConfigOptions = {
apiKey: '...',
plugins: [new BugsnagPluginReact(React)],
...,
};
configOptions.user = {
...
};
Bugsnag.start(bugsnagConfigOptions);
const BugsnagErrorBoundary = Bugsnag.getPlugin('react');
class UIErrorBoundary2 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
Вместо этого я хотел бы сделать что-то вроде этого:
bugsnagsetup.js
import React from 'react';
import Bugsnag from '@bugsnag/js';
import BugsnagPluginReact from '@bugsnag/plugin-react';
const bugsnagConfigOptions = {
apiKey: '...',
plugins: [new BugsnagPluginReact(React)],
...,
};
configOptions.user = {
...
};
export const Bugsnag = Bugsnag.start(bugsnagConfigOptions);
export const BugsnagErrorBoundary = Bugsnag.getPlugin('react');
UIErrorBoundary1.jsx
import React from 'react';
import { BugsnagErrorBoundary } from 'bugsnagsetup';
class UIErrorBoundary1 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
UIErrorBoundary2.jsx
import React from 'react';
import { BugsnagErrorBoundary } from 'bugsnagsetup';
class UIErrorBoundary2 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
Это уменьшит дублирование кода и, возможно, предотвратит определение нескольких экземпляров Bugsnag (которые я не тестировал, но я надеюсь, что это не приведет к отправке нескольких ошибок Bugsnag, если bugsnag запущен в нескольких разных файлах).
Это возможно?