https://github.com/mattipv4/workers-sentry
Some wrappers for using Sentry in Workers
https://github.com/mattipv4/workers-sentry
Last synced: 9 months ago
JSON representation
Some wrappers for using Sentry in Workers
- Host: GitHub
- URL: https://github.com/mattipv4/workers-sentry
- Owner: MattIPv4
- Created: 2021-01-23T14:19:12.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-07-11T20:35:04.000Z (over 4 years ago)
- Last Synced: 2024-05-01T14:38:11.066Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 13.7 KB
- Stars: 9
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# workers-sentry
Some wrappers for using Sentry in Workers.
Allows for source maps to be correctly uploaded to Sentry for your Workers, and for Sentry to be used in the Worker for error reporting.
## Webpack config
```js
const WorkersSentryWebpackPlugin = require('workers-sentry/webpack');
module.exports = {
plugins: [
new WorkersSentryWebpackPlugin(
process.env.SENTRY_AUTH_TOKEN,
process.env.SENTRY_ORG,
process.env.SENTRY_PROJECT,
),
],
};
```
## Worker source
```js
const WorkersSentry = require('workers-sentry/worker');
const handleRequest = async request => {
// Do some stuff
// Oh no, an error!
throw new Error('Hello world!');
};
const handleScheduled = async () => {
// Do some stuff
// Oh no, an error!
throw new Error('Hello world!');
};
addEventListener('fetch', event => {
// Start Sentry
const sentry = new WorkersSentry(event, process.env.SENTRY_DSN);
// Process the event
return event.respondWith(handleRequest(event.request)).catch(err => {
sentry.captureException(err);
throw err;
});
});
addEventListener('scheduled', event => {
// Start Sentry
const sentry = new WorkersSentry(event, process.env.SENTRY_DSN);
// Process the event
return event.waitUntil(handleScheduled()).catch(err => {
sentry.captureException(err);
throw err;
});
});
```