Можно ли сделать экспортируемую конфигурацию 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 запущен в нескольких разных файлах).

Это возможно?

0 ответов

Другие вопросы по тегам