@@ -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' ;
@@ -477,14 +478,37 @@ export const makeWrappedCreateRequestHandler = (options?: { instrumentTracing?:
477478 } ;
478479 } ;
479480
481+ /**
482+ * Helper to load a module in both CJS and ESM contexts.
483+ * In ESM, we use createRequire to create a require function.
484+ * In CJS, we use the standard loadModule.
485+ */
486+ function loadModuleCompat < T > ( moduleName : string ) : T | undefined {
487+ // Check if we're in ESM context (module doesn't exist)
488+ if ( typeof module === 'undefined' ) {
489+ // ESM context - use createRequire to get a require function
490+ try {
491+ // eslint-disable-next-line @typescript-eslint/no-var-requires
492+ const require = createRequire ( import . meta. url ) ;
493+ return require ( moduleName ) as T ;
494+ } catch {
495+ return undefined ;
496+ }
497+ } else {
498+ // CJS context - use loadModule with module reference
499+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
500+ return loadModule < T > ( moduleName , module as any ) ;
501+ }
502+ }
503+
480504/**
481505 * Monkey-patch Remix's `createRequestHandler` from `@remix-run/server-runtime`
482506 * which Remix Adapters (https://remix.run/docs/en/v1/api/remix) use underneath.
483507 */
484508export function instrumentServer ( options ?: { instrumentTracing ?: boolean } ) : void {
485- const pkg = loadModule < {
509+ const pkg = loadModuleCompat < {
486510 createRequestHandler : CreateRequestHandlerFunction ;
487- } > ( '@remix-run/server-runtime' , module ) ;
511+ } > ( '@remix-run/server-runtime' ) ;
488512
489513 if ( ! pkg ) {
490514 DEBUG_BUILD && debug . warn ( 'Remix SDK was unable to require `@remix-run/server-runtime` package.' ) ;
0 commit comments