diff --git a/packages/node-integration-tests/suites/public-api/LocalVariables/local-variables.js b/packages/node-integration-tests/suites/public-api/LocalVariables/local-variables.js index db24a014c5a2..11eba49dbdba 100644 --- a/packages/node-integration-tests/suites/public-api/LocalVariables/local-variables.js +++ b/packages/node-integration-tests/suites/public-api/LocalVariables/local-variables.js @@ -3,7 +3,7 @@ const Sentry = require('@sentry/node'); Sentry.init({ dsn: 'https://public@dsn.ingest.sentry.io/1337', - _experiments: { includeStackLocals: true }, + includeLocalVariables: true, beforeSend: event => { // eslint-disable-next-line no-console console.log(JSON.stringify(event)); diff --git a/packages/node/src/integrations/localvariables.ts b/packages/node/src/integrations/localvariables.ts index 9e574c87b406..2f28c548fa85 100644 --- a/packages/node/src/integrations/localvariables.ts +++ b/packages/node/src/integrations/localvariables.ts @@ -1,16 +1,9 @@ -import type { - ClientOptions, - Event, - EventProcessor, - Exception, - Hub, - Integration, - StackFrame, - StackParser, -} from '@sentry/types'; +import type { Event, EventProcessor, Exception, Hub, Integration, StackFrame, StackParser } from '@sentry/types'; import type { Debugger, InspectorNotification, Runtime, Session } from 'inspector'; import { LRUMap } from 'lru_map'; +import type { NodeClientOptions } from '../types'; + export interface DebugSession { /** Configures and connects to the debug session */ configureAndConnect(onPause: (message: InspectorNotification) => void): void; @@ -198,9 +191,9 @@ export class LocalVariables implements Integration { /** Setup in a way that's easier to call from tests */ private _setup( addGlobalEventProcessor: (callback: EventProcessor) => void, - clientOptions: ClientOptions | undefined, + clientOptions: NodeClientOptions | undefined, ): void { - if (this._session && clientOptions?._experiments?.includeStackLocals) { + if (this._session && clientOptions?.includeLocalVariables) { this._session.configureAndConnect(ev => this._handlePaused(clientOptions.stackParser, ev as InspectorNotification), ); diff --git a/packages/node/src/types.ts b/packages/node/src/types.ts index 6acdbb4b2566..4d384bc54cf3 100644 --- a/packages/node/src/types.ts +++ b/packages/node/src/types.ts @@ -11,6 +11,13 @@ export interface BaseNodeOptions { /** Sets an optional server name (device name) */ serverName?: string; + /** + * Include local variables with stack traces. + * + * Requires the `LocalVariables` integration. + */ + includeLocalVariables?: boolean; + // TODO (v8): Remove this in v8 /** * @deprecated Moved to constructor options of the `Http` integration. diff --git a/packages/node/test/integrations/localvariables.test.ts b/packages/node/test/integrations/localvariables.test.ts index 2b6853ce5488..6d0124296ea3 100644 --- a/packages/node/test/integrations/localvariables.test.ts +++ b/packages/node/test/integrations/localvariables.test.ts @@ -114,7 +114,7 @@ describe('LocalVariables', () => { const localVariables = new LocalVariables({}, session); const options = getDefaultNodeClientOptions({ stackParser: defaultStackParser, - _experiments: { includeStackLocals: true }, + includeLocalVariables: true, }); let eventProcessor: EventProcessor | undefined; @@ -210,7 +210,7 @@ describe('LocalVariables', () => { const localVariables = new LocalVariables({}, session); const options = getDefaultNodeClientOptions({ stackParser: defaultStackParser, - _experiments: { includeStackLocals: true }, + includeLocalVariables: true, }); (localVariables as unknown as LocalVariablesPrivate)._setup(_ => {}, options); @@ -232,7 +232,6 @@ describe('LocalVariables', () => { const localVariables = new LocalVariables({}, session); const options = getDefaultNodeClientOptions({ stackParser: defaultStackParser, - _experiments: { includeStackLocals: false }, }); let eventProcessor: EventProcessor | undefined; @@ -250,7 +249,6 @@ describe('LocalVariables', () => { const localVariables = new LocalVariables({}, undefined); const options = getDefaultNodeClientOptions({ stackParser: defaultStackParser, - _experiments: { includeStackLocals: false }, }); let eventProcessor: EventProcessor | undefined; @@ -272,7 +270,7 @@ describe('LocalVariables', () => { const localVariables = new LocalVariables({}, session); const options = getDefaultNodeClientOptions({ stackParser: defaultStackParser, - _experiments: { includeStackLocals: true }, + includeLocalVariables: true, }); (localVariables as unknown as LocalVariablesPrivate)._setup(_ => {}, options);