Ctrl K
ComunidadGuías…

lib/middleware/honeybadger.ts

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import Honeybadger from '@honeybadger-io/js';
import type { MiddlewareHandler } from 'hono';

import { config } from '@/config';
import { getRouteNameFromPath } from '@/utils/helpers';
import logger from '@/utils/logger';

if (config.honeybadger.apiKey) {
    Honeybadger.configure({
        apiKey: config.honeybadger.apiKey,
        enableUncaught: false,
    });
    Honeybadger.setContext({ node_name: config.nodeName });

    logger.info('Honeybadger inited.');
}

const middleware: MiddlewareHandler = async (ctx, next) => {
    const time = Date.now();
    await next();
    if (config.honeybadger.apiKey && Date.now() - time >= config.errorTrackingRouteTimeout) {
        Honeybadger.notify(new Error('Route Timeout'), {
            context: { name: getRouteNameFromPath(ctx.req.path) },
        });
    }
};

export default middleware;