@@ -13,7 +13,6 @@ import { createAddHookMessageChannel } from 'import-in-the-middle';
1313import { DEBUG_BUILD } from '../debug-build' ;
1414import { getOpenTelemetryInstrumentationToPreload } from '../integrations/tracing' ;
1515import { SentryContextManager } from '../otel/contextManager' ;
16- import type { EsmLoaderHookOptions } from '../types' ;
1716import { isCjs } from '../utils/commonjs' ;
1817import type { NodeClient } from './client' ;
1918
@@ -34,30 +33,8 @@ export function initOpenTelemetry(client: NodeClient): void {
3433 client . traceProvider = provider ;
3534}
3635
37- type ImportInTheMiddleInitData = Pick < EsmLoaderHookOptions , 'include' | 'exclude' > & {
38- addHookMessagePort ?: unknown ;
39- } ;
40-
41- interface RegisterOptions {
42- data ?: ImportInTheMiddleInitData ;
43- transferList ?: unknown [ ] ;
44- }
45-
46- function getRegisterOptions ( esmHookConfig ?: EsmLoaderHookOptions ) : RegisterOptions {
47- // TODO(v9): Make onlyIncludeInstrumentedModules: true the default behavior.
48- if ( esmHookConfig ?. onlyIncludeInstrumentedModules ) {
49- const { addHookMessagePort } = createAddHookMessageChannel ( ) ;
50- // If the user supplied include, we need to use that as a starting point or use an empty array to ensure no modules
51- // are wrapped if they are not hooked
52- // eslint-disable-next-line deprecation/deprecation
53- return { data : { addHookMessagePort, include : esmHookConfig . include || [ ] } , transferList : [ addHookMessagePort ] } ;
54- }
55-
56- return { data : esmHookConfig } ;
57- }
58-
5936/** Initialize the ESM loader. */
60- export function maybeInitializeEsmLoader ( esmHookConfig ?: EsmLoaderHookOptions ) : void {
37+ export function maybeInitializeEsmLoader ( ) : void {
6138 const [ nodeMajor = 0 , nodeMinor = 0 ] = process . versions . node . split ( '.' ) . map ( Number ) ;
6239
6340 // Register hook was added in v20.6.0 and v18.19.0
@@ -68,8 +45,12 @@ export function maybeInitializeEsmLoader(esmHookConfig?: EsmLoaderHookOptions):
6845
6946 if ( ! GLOBAL_OBJ . _sentryEsmLoaderHookRegistered && importMetaUrl ) {
7047 try {
48+ const { addHookMessagePort } = createAddHookMessageChannel ( ) ;
7149 // @ts -expect-error register is available in these versions
72- moduleModule . register ( 'import-in-the-middle/hook.mjs' , importMetaUrl , getRegisterOptions ( esmHookConfig ) ) ;
50+ moduleModule . register ( 'import-in-the-middle/hook.mjs' , importMetaUrl , {
51+ data : { addHookMessagePort, include : [ ] } ,
52+ transferList : [ addHookMessagePort ] ,
53+ } ) ;
7354 GLOBAL_OBJ . _sentryEsmLoaderHookRegistered = true ;
7455 } catch ( error ) {
7556 logger . warn ( 'Failed to register ESM hook' , error ) ;
@@ -88,7 +69,6 @@ export function maybeInitializeEsmLoader(esmHookConfig?: EsmLoaderHookOptions):
8869interface NodePreloadOptions {
8970 debug ?: boolean ;
9071 integrations ?: string [ ] ;
91- registerEsmLoaderHooks ?: EsmLoaderHookOptions ;
9272}
9373
9474/**
@@ -105,7 +85,7 @@ export function preloadOpenTelemetry(options: NodePreloadOptions = {}): void {
10585 }
10686
10787 if ( ! isCjs ( ) ) {
108- maybeInitializeEsmLoader ( options . registerEsmLoaderHooks ) ;
88+ maybeInitializeEsmLoader ( ) ;
10989 }
11090
11191 // These are all integrations that we need to pre-load to ensure they are set up before any other code runs
0 commit comments