Skip to content

Commit 830ac57

Browse files
committed
node client options
1 parent 3b50b45 commit 830ac57

File tree

5 files changed

+23
-10
lines changed

5 files changed

+23
-10
lines changed

packages/core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export { initAndBind } from './sdk';
3737
export { NoopTransport } from './transports/noop';
3838
export { createTransport } from './transports/base';
3939
export { SDK_VERSION } from './version';
40+
export { defaultCoreOptions, optionsToClientOptions } from './options';
4041

4142
import * as Integrations from './integrations';
4243

packages/core/src/sdk.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { getCurrentHub } from '@sentry/hub';
2-
import { Client, Options, Transport } from '@sentry/types';
2+
import { Client, ClientOptions, Transport } from '@sentry/types';
33
import { logger } from '@sentry/utils';
44

55
import { IS_DEBUG_BUILD } from './flags';
66
import { NewTransport } from './transports/base';
77

88
/** A class object that can instantiate Client objects. */
9-
export type ClientClass<F extends Client, O extends Options> = new (
9+
export type ClientClass<F extends Client, O extends ClientOptions> = new (
1010
options: O,
1111
transport: Transport,
1212
newTransport?: NewTransport,
@@ -19,7 +19,7 @@ export type ClientClass<F extends Client, O extends Options> = new (
1919
* @param clientClass The client class to instantiate.
2020
* @param options Options to pass to the client.
2121
*/
22-
export function initAndBind<F extends Client, O extends Options>(
22+
export function initAndBind<F extends Client, O extends ClientOptions>(
2323
clientClass: ClientClass<F, O>,
2424
options: O,
2525
transport: Transport,

packages/node/src/sdk.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
import { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';
1+
import { defaultCoreOptions, getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';
2+
import { getIntegrationsToSetup } from '@sentry/core/build/types/integration';
23
import { getMainCarrier, setHubOnCarrier } from '@sentry/hub';
34
import { SessionStatus } from '@sentry/types';
4-
import { getGlobalObject, logger } from '@sentry/utils';
5+
import { getGlobalObject, logger, makeDsn, stackParserFromOptions } from '@sentry/utils';
56
import * as domain from 'domain';
67

78
import { NodeClient } from './client';
89
import { IS_DEBUG_BUILD } from './flags';
910
import { Console, ContextLines, Http, LinkedErrors, OnUncaughtException, OnUnhandledRejection } from './integrations';
1011
import { nodeStackParser } from './stack-parser';
1112
import { setupNodeTransport } from './transports';
12-
import { NodeOptions } from './types';
13+
import { NodeClientOptions, NodeOptions } from './types';
1314

1415
export const defaultIntegrations = [
1516
// Common
@@ -132,7 +133,18 @@ export function init(options: NodeOptions = {}): void {
132133
}
133134

134135
const { transport, newTransport } = setupNodeTransport(options);
135-
initAndBind(NodeClient, options, transport, newTransport);
136+
137+
// TODO(v7): Refactor this to reduce the logic above
138+
const clientOptions: NodeClientOptions = {
139+
...options,
140+
...defaultCoreOptions,
141+
dsn: options.dsn === undefined ? undefined : makeDsn(process.env.SENTRY_DSN ? process.env.SENTRY_DSN : options.dsn),
142+
stackParser: stackParserFromOptions(options),
143+
integrations: getIntegrationsToSetup(options),
144+
transport,
145+
};
146+
147+
initAndBind(NodeClient, clientOptions, transport, newTransport);
136148

137149
if (options.autoSessionTracking) {
138150
startSessionTracking();

packages/node/src/transports/setup.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { getEnvelopeEndpointWithUrlEncodedAuth, initAPIDetails, NewTransport, No
22
import { Transport, TransportOptions } from '@sentry/types';
33
import { makeDsn } from '@sentry/utils';
44

5-
import { NodeClientOptions } from '../types';
5+
import { NodeOptions } from '../types';
66
import { HTTPSTransport, HTTPTransport, makeNodeTransport } from '.';
77

88
/**
@@ -13,7 +13,7 @@ import { HTTPSTransport, HTTPTransport, makeNodeTransport } from '.';
1313
* this function will return a ready to use `NewTransport`.
1414
*/
1515
// TODO(v7): Adjust return value when NewTransport is the default
16-
export function setupNodeTransport(options: NodeClientOptions): { transport: Transport; newTransport?: NewTransport } {
16+
export function setupNodeTransport(options: NodeOptions): { transport: Transport; newTransport?: NewTransport } {
1717
if (!options.dsn) {
1818
// We return the noop transport here in case there is no Dsn.
1919
return { transport: new NoopTransport() };

packages/types/src/options.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ export interface Options extends Omit<Partial<ClientOptions>, 'dsn' | 'integrati
227227
/**
228228
* Transport object that should be used to send events to Sentry
229229
*/
230-
transport?: TransportClass<Transport>;
230+
transport?: Transport;
231231

232232
/**
233233
* A stack parser implementation or an array of stack line parsers

0 commit comments

Comments
 (0)