Skip to content

Commit 726e874

Browse files
committed
Better defaultIntegrations
1 parent 9a8f0dc commit 726e874

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

packages/node/src/sdk.ts

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
Integrations as CoreIntegrations,
88
setHubOnCarrier,
99
} from '@sentry/core';
10-
import { SessionStatus, StackParser } from '@sentry/types';
10+
import { Integration, SessionStatus, StackParser } from '@sentry/types';
1111
import {
1212
createStackParser,
1313
dynamicRequire,
@@ -109,29 +109,11 @@ export const defaultIntegrations = [
109109
*
110110
* @see {@link NodeOptions} for documentation on configuration options.
111111
*/
112-
// eslint-disable-next-line complexity
113112
export function init(options: NodeOptions = {}): void {
114113
const carrier = getMainCarrier();
115114
const autoloadedIntegrations = carrier.__SENTRY__?.integrations || [];
116115

117-
options.defaultIntegrations =
118-
options.defaultIntegrations === false
119-
? []
120-
: [
121-
...(Array.isArray(options.defaultIntegrations) ? options.defaultIntegrations : defaultIntegrations),
122-
...autoloadedIntegrations,
123-
];
124-
125-
const nodeVersion = parseSemver(process.versions.node);
126-
127-
if (options.includeStackLocals && (nodeVersion.major || 0) >= 14) {
128-
const { LocalVariables } = dynamicRequire(
129-
module,
130-
'./integrations/localvariables',
131-
) as typeof import('./integrations/localvariables');
132-
133-
options.defaultIntegrations.push(new LocalVariables());
134-
}
116+
options.defaultIntegrations = getDefaultIntegrations(options, autoloadedIntegrations);
135117

136118
if (options.dsn === undefined && process.env.SENTRY_DSN) {
137119
options.dsn = process.env.SENTRY_DSN;
@@ -186,6 +168,29 @@ export function init(options: NodeOptions = {}): void {
186168
}
187169
}
188170

171+
function getDefaultIntegrations(options: NodeOptions, autoloadedIntegrations: Integration[]): Integration[] {
172+
const integrations =
173+
options.defaultIntegrations === false
174+
? []
175+
: [
176+
...(Array.isArray(options.defaultIntegrations) ? options.defaultIntegrations : defaultIntegrations),
177+
...autoloadedIntegrations,
178+
];
179+
180+
const nodeVersion = parseSemver(process.versions.node);
181+
182+
if (options.includeStackLocals && (nodeVersion.major || 0) >= 14) {
183+
const { LocalVariables } = dynamicRequire(
184+
module,
185+
'./integrations/localvariables',
186+
) as typeof import('./integrations/localvariables');
187+
188+
integrations.push(new LocalVariables());
189+
}
190+
191+
return integrations;
192+
}
193+
189194
/**
190195
* This is the getter for lastEventId.
191196
*

0 commit comments

Comments
 (0)