From 8f0669315222cbf0450a45256d26eddd2e3e706e Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Thu, 27 Jun 2024 21:17:34 +0200 Subject: [PATCH 1/2] feat(node): Add `registerEsmLoaderHooks` option --- packages/node/src/sdk/index.ts | 2 +- packages/node/src/types.ts | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/node/src/sdk/index.ts b/packages/node/src/sdk/index.ts index 746136c03022..4c30ba2bd2cf 100644 --- a/packages/node/src/sdk/index.ts +++ b/packages/node/src/sdk/index.ts @@ -130,7 +130,7 @@ function _init( } } - if (!isCjs()) { + if (!isCjs() && options.registerEsmLoaderHooks !== false) { maybeInitializeEsmLoader(); } diff --git a/packages/node/src/types.ts b/packages/node/src/types.ts index 2c00302e2e64..4630c4c06e59 100644 --- a/packages/node/src/types.ts +++ b/packages/node/src/types.ts @@ -85,6 +85,15 @@ export interface BaseNodeOptions { */ maxSpanWaitDuration?: number; + /** + * Whether to register ESM loader hooks to automatically instrument libraries. + * This is necessary to auto instrument libraries that are loaded via ESM imports, but might it can cause issues + * with certain libraries. + * + * Defaults to `true`. + */ + registerEsmLoaderHooks?: boolean; + /** Callback that is executed when a fatal global error occurs. */ onFatalError?(this: void, error: Error): void; } From fdbaaf27b92e1ae357a3baef75f52f6c4db41b42 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Fri, 28 Jun 2024 12:58:07 +0200 Subject: [PATCH 2/2] Update packages/node/src/types.ts Co-authored-by: Francesco Novy --- packages/node/src/types.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/node/src/types.ts b/packages/node/src/types.ts index 4630c4c06e59..882114a013f9 100644 --- a/packages/node/src/types.ts +++ b/packages/node/src/types.ts @@ -88,7 +88,8 @@ export interface BaseNodeOptions { /** * Whether to register ESM loader hooks to automatically instrument libraries. * This is necessary to auto instrument libraries that are loaded via ESM imports, but might it can cause issues - * with certain libraries. + * with certain libraries. If you run into problems running your app with this enabled, + * please raise an issue in https://github.com/getsentry/sentry-javascript. * * Defaults to `true`. */