import { addServerImports, createResolver } from '@nuxt/kit'; import * as path from 'path'; function addMiddlewareImports() { addServerImports([ { name: "wrapMiddlewareHandlerWithSentry", from: createResolver(import.meta.url).resolve("./runtime/hooks/wrapMiddlewareHandler") } ]); } function addMiddlewareInstrumentation(nitro) { nitro.hooks.hook("rollup:before", (nitro2, rollupConfig) => { if (!rollupConfig.plugins) { rollupConfig.plugins = []; } if (!Array.isArray(rollupConfig.plugins)) { rollupConfig.plugins = [rollupConfig.plugins]; } rollupConfig.plugins.push(middlewareInstrumentationPlugin(nitro2)); }); } function middlewareInstrumentationPlugin(nitro) { const middlewareFiles = /* @__PURE__ */ new Set(); return { name: "sentry-nuxt-middleware-instrumentation", buildStart() { nitro.scannedHandlers?.forEach(({ middleware, handler }) => { if (middleware && handler) { middlewareFiles.add(handler); } }); }, transform(code, id) { if (middlewareFiles.has(id)) { const fileName = path.basename(id); return { code: wrapMiddlewareCode(code, fileName), map: null }; } return null; } }; } function wrapMiddlewareCode(originalCode, fileName) { const cleanFileName = fileName.replace(/\.(ts|js|mjs|mts|cts)$/, ""); return ` import { wrapMiddlewareHandlerWithSentry } from '#imports'; function defineInstrumentedEventHandler(handlerOrObject) { return defineEventHandler(wrapMiddlewareHandlerWithSentry(handlerOrObject, '${cleanFileName}')); } function instrumentedEventHandler(handlerOrObject) { return eventHandler(wrapMiddlewareHandlerWithSentry(handlerOrObject, '${cleanFileName}')); } function defineInstrumentedHandler(handlerOrObject) { return defineHandler(wrapMiddlewareHandlerWithSentry(handlerOrObject, '${cleanFileName}')); } ${originalCode.replace(/defineEventHandler\(/g, "defineInstrumentedEventHandler(").replace(/eventHandler\(/g, "instrumentedEventHandler(").replace(/defineHandler\(/g, "defineInstrumentedHandler(")} `; } export { addMiddlewareImports, addMiddlewareInstrumentation }; //# sourceMappingURL=middlewareConfig.js.map