import { Hono } from 'hono';
import { jwtMiddleware, requireRole } from '@adrper79-dot/auth';
import { createLogger } from '@adrper79-dot/logger';
type Env = {
DB: Hyperdrive;
JWT_SECRET: string;
};
const app = new Hono<{ Bindings: Env }>();
app.use('*', (c, next) => {
const logger = createLogger({ service: 'my-app' });
c.set('logger', logger);
return next();
});
app.use('/api/*', (c, next) => jwtMiddleware(c.env.JWT_SECRET)(c, next));
app.use('/api/admin/*', requireRole('admin'));
app.get('/api/me', (c) => {
const user = c.get('user');
return c.json({ sub: user.sub, role: user.role });
});
export default app;