@@ -35,6 +35,7 @@ import {
3535 winterCGRequestToRequestData ,
3636 withIsolationScope ,
3737} from '@sentry/core' ;
38+ import { createRequire } from 'module' ;
3839import { DEBUG_BUILD } from '../utils/debug-build' ;
3940import { createRoutes , getTransactionName } from '../utils/utils' ;
4041import { extractData , isResponse , json } from '../utils/vendor/response' ;
@@ -480,14 +481,37 @@ export const makeWrappedCreateRequestHandler = (options?: { instrumentTracing?:
480481 } ;
481482 } ;
482483
484+ /**
485+ * Helper to load a module in both CJS and ESM contexts.
486+ * In ESM, we use createRequire to create a require function.
487+ * In CJS, we use the standard loadModule.
488+ */
489+ function loadModuleCompat < T > ( moduleName : string ) : T | undefined {
490+ // Check if we're in ESM context (module doesn't exist)
491+ if ( typeof module === 'undefined' ) {
492+ // ESM context - use createRequire to get a require function
493+ try {
494+ // eslint-disable-next-line @typescript-eslint/no-var-requires
495+ const require = createRequire ( import . meta. url ) ;
496+ return require ( moduleName ) as T ;
497+ } catch {
498+ return undefined ;
499+ }
500+ } else {
501+ // CJS context - use loadModule with module reference
502+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
503+ return loadModule < T > ( moduleName , module as any ) ;
504+ }
505+ }
506+
483507/**
484508 * Monkey-patch Remix's `createRequestHandler` from `@remix-run/server-runtime`
485509 * which Remix Adapters (https://remix.run/docs/en/v1/api/remix) use underneath.
486510 */
487511export function instrumentServer ( options ?: { instrumentTracing ?: boolean } ) : void {
488- const pkg = loadModule < {
512+ const pkg = loadModuleCompat < {
489513 createRequestHandler : CreateRequestHandlerFunction ;
490- } > ( '@remix-run/server-runtime' , module ) ;
514+ } > ( '@remix-run/server-runtime' ) ;
491515
492516 if ( ! pkg ) {
493517 DEBUG_BUILD && debug . warn ( 'Remix SDK was unable to require `@remix-run/server-runtime` package.' ) ;
0 commit comments