@bugban/react
v1.3.0
Published
Bugban SDK for React — error boundary, hooks and automatic error/performance reporting. Works with Vite, CRA and any bundler.
Maintainers
Readme
@bugban/react
Bugban error and performance monitoring for React. Works with Vite, Create React App, Parcel — anything that bundles React.
npm install @bugban/reactWhy the adapter
React swallows errors thrown during render and shows a blank screen. They never reach window.onerror, so a global handler cannot see them — only an error boundary can. This package adds one, plus the component stack, which is the piece a minified stack trace cannot give you.
Setup
// main.jsx — before rendering
import { initReact } from '@bugban/react';
initReact({
apiKey: import.meta.env.VITE_BUGBAN_KEY,
host: 'https://bugban.online',
release: import.meta.env.VITE_APP_VERSION,
environment: import.meta.env.MODE,
});Then wrap your tree:
import { BugbanErrorBoundary } from '@bugban/react';
<BugbanErrorBoundary
fallback={(error, reset) => (
<div>
<p>Something went wrong.</p>
<button onClick={reset}>Try again</button>
</div>
)}
>
<App />
</BugbanErrorBoundary>Recover automatically on route change:
<BugbanErrorBoundary resetKeys={[location.pathname]}>
<Routes />
</BugbanErrorBoundary>Errors a boundary cannot catch
Event handlers and effects run outside render, so React does not route their errors to a boundary. Report those yourself:
import { useBugbanCapture } from '@bugban/react';
function SaveButton() {
const report = useBugbanCapture();
const onClick = async () => {
try {
await save();
} catch (err) {
report(err, { screen: 'checkout' });
}
};
return <button onClick={onClick}>Save</button>;
}Wrapping a single component
import { withBugban } from '@bugban/react';
export default withBugban(Dashboard, { fallback: <Oops /> });Everything else
Uncaught errors, console.error, failed network calls, Core Web Vitals and the DOM snapshot come from @bugban/js and are on by default. See its README for options, privacy and redaction — including input masking in snapshots.
Requires React 16.8 or newer.
License
MIT
