@hono/sentry
v1.2.0
Published
Sentry Middleware for Hono
Downloads
65,671
Readme
Sentry Middleware for Hono
This middleware integrates Hono with Sentry. It captures exceptions and sends them to the specified Sentry data source name (DSN) using toucan-js.
Installation
npm i hono @hono/sentry
Configuration
If you're running your application on Cloudflare Workers, set a binding value named SENTRY_DSN
, which will be used as the DSN. For instance, during development, you can specify this in .dev.vars
:
SENTRY_DSN=<Your DSN>
On other platforms, you can directly provide the DSN by passing it as an option:
sentry({
dsn: `<Your DSN>`,
})
How to Use
import { Hono } from 'hono'
import { sentry } from '@hono/sentry'
const app = new Hono()
app.use('*', sentry())
app.get('/', (c) => c.text('foo'))
export default app
Options:
import type { Options as ToucanOptions } from 'toucan-js'
type Options = Omit<ToucanOptions, 'request' | 'context'>
For Deno Users
import { serve } from 'https://deno.land/std/http/server.ts'
import { sentry } from 'npm:@hono/sentry'
import { Hono } from 'https://deno.land/x/hono/mod.ts'
const app = new Hono()
app.use('*', sentry({ dsn: 'https://[email protected]/xxxxxx' }))
app.get('/', (c) => c.text('foo'))
serve(app.fetch)
Accessing an instance of Sentry
You can retrieve an instance of Sentry
using c.get('sentry')
.
app.onError((e, c) => {
c.get('sentry').setContext('character', {
name: 'Mighty Fighter',
age: 19,
attack_type: 'melee',
})
c.get('sentry').captureException(e)
return c.text('Internal Server Error', 500)
})
Authors
- Samuel Lippert - https://github.com/sam-lippert
- Yusuke Wada - https://github.com/yusukebe
License
MIT