Skip to content

Commit 6381f91

Browse files
committed
Import utils from core with _INTERNAL_ prefix
1 parent 70ccac1 commit 6381f91

File tree

8 files changed

+87
-85
lines changed

8 files changed

+87
-85
lines changed

packages/browser/src/integrations/featureFlags/launchdarkly/integration.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import type { Client, Event, EventHint, IntegrationFn, Span } from '@sentry/core';
2-
import { defineIntegration } from '@sentry/core';
32
import {
4-
bufferSpanFeatureFlag,
5-
copyFlagsFromScopeToEvent,
6-
freezeSpanFeatureFlags,
7-
insertFlagToScope,
8-
} from '../../../utils/featureFlags';
3+
defineIntegration,
4+
_INTERNAL_bufferSpanFeatureFlag,
5+
_INTERNAL_copyFlagsFromScopeToEvent,
6+
_INTERNAL_freezeSpanFeatureFlags,
7+
_INTERNAL_insertFlagToScope,
8+
} from '@sentry/core';
99
import type { LDContext, LDEvaluationDetail, LDInspectionFlagUsedHandler } from './types';
1010

1111
/**
@@ -29,12 +29,12 @@ export const launchDarklyIntegration = defineIntegration(() => {
2929

3030
setup(client: Client) {
3131
client.on('spanEnd', (span: Span) => {
32-
freezeSpanFeatureFlags(span);
32+
_INTERNAL_freezeSpanFeatureFlags(span);
3333
});
3434
},
3535

3636
processEvent(event: Event, _hint: EventHint, _client: Client): Event {
37-
return copyFlagsFromScopeToEvent(event);
37+
return _INTERNAL_copyFlagsFromScopeToEvent(event);
3838
},
3939
};
4040
}) satisfies IntegrationFn;
@@ -56,8 +56,8 @@ export function buildLaunchDarklyFlagUsedHandler(): LDInspectionFlagUsedHandler
5656
* Handle a flag evaluation by storing its name and value on the current scope.
5757
*/
5858
method: (flagKey: string, flagDetail: LDEvaluationDetail, _context: LDContext) => {
59-
insertFlagToScope(flagKey, flagDetail.value);
60-
bufferSpanFeatureFlag(flagKey, flagDetail.value);
59+
_INTERNAL_insertFlagToScope(flagKey, flagDetail.value);
60+
_INTERNAL_bufferSpanFeatureFlag(flagKey, flagDetail.value);
6161
},
6262
};
6363
}

packages/browser/src/integrations/featureFlags/openfeature/integration.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
* ```
1515
*/
1616
import type { Client, Event, EventHint, IntegrationFn, Span } from '@sentry/core';
17-
import { defineIntegration } from '@sentry/core';
1817
import {
19-
bufferSpanFeatureFlag,
20-
copyFlagsFromScopeToEvent,
21-
freezeSpanFeatureFlags,
22-
insertFlagToScope,
23-
} from '../../../utils/featureFlags';
18+
defineIntegration,
19+
_INTERNAL_bufferSpanFeatureFlag,
20+
_INTERNAL_copyFlagsFromScopeToEvent,
21+
_INTERNAL_freezeSpanFeatureFlags,
22+
_INTERNAL_insertFlagToScope,
23+
} from '@sentry/core';
2424
import type { EvaluationDetails, HookContext, HookHints, JsonValue, OpenFeatureHook } from './types';
2525

2626
export const openFeatureIntegration = defineIntegration(() => {
@@ -29,12 +29,12 @@ export const openFeatureIntegration = defineIntegration(() => {
2929

3030
setup(client: Client) {
3131
client.on('spanEnd', (span: Span) => {
32-
freezeSpanFeatureFlags(span);
32+
_INTERNAL_freezeSpanFeatureFlags(span);
3333
});
3434
},
3535

3636
processEvent(event: Event, _hint: EventHint, _client: Client): Event {
37-
return copyFlagsFromScopeToEvent(event);
37+
return _INTERNAL_copyFlagsFromScopeToEvent(event);
3838
},
3939
};
4040
}) satisfies IntegrationFn;
@@ -47,15 +47,15 @@ export class OpenFeatureIntegrationHook implements OpenFeatureHook {
4747
* Successful evaluation result.
4848
*/
4949
public after(_hookContext: Readonly<HookContext<JsonValue>>, evaluationDetails: EvaluationDetails<JsonValue>): void {
50-
insertFlagToScope(evaluationDetails.flagKey, evaluationDetails.value);
51-
bufferSpanFeatureFlag(evaluationDetails.flagKey, evaluationDetails.value);
50+
_INTERNAL_insertFlagToScope(evaluationDetails.flagKey, evaluationDetails.value);
51+
_INTERNAL_bufferSpanFeatureFlag(evaluationDetails.flagKey, evaluationDetails.value);
5252
}
5353

5454
/**
5555
* On error evaluation result.
5656
*/
5757
public error(hookContext: Readonly<HookContext<JsonValue>>, _error: unknown, _hookHints?: HookHints): void {
58-
insertFlagToScope(hookContext.flagKey, hookContext.defaultValue);
59-
bufferSpanFeatureFlag(hookContext.flagKey, hookContext.defaultValue);
58+
_INTERNAL_insertFlagToScope(hookContext.flagKey, hookContext.defaultValue);
59+
_INTERNAL_bufferSpanFeatureFlag(hookContext.flagKey, hookContext.defaultValue);
6060
}
6161
}

packages/browser/src/integrations/featureFlags/statsig/integration.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import type { Client, Event, EventHint, IntegrationFn, Span } from '@sentry/core';
2-
import { defineIntegration } from '@sentry/core';
32
import {
4-
bufferSpanFeatureFlag,
5-
copyFlagsFromScopeToEvent,
6-
freezeSpanFeatureFlags,
7-
insertFlagToScope,
8-
} from '../../../utils/featureFlags';
3+
defineIntegration,
4+
_INTERNAL_bufferSpanFeatureFlag,
5+
_INTERNAL_copyFlagsFromScopeToEvent,
6+
_INTERNAL_freezeSpanFeatureFlags,
7+
_INTERNAL_insertFlagToScope,
8+
} from '@sentry/core';
99
import type { FeatureGate, StatsigClient } from './types';
1010

1111
/**
@@ -38,17 +38,17 @@ export const statsigIntegration = defineIntegration(
3838

3939
setup(client: Client) {
4040
client.on('spanEnd', (span: Span) => {
41-
freezeSpanFeatureFlags(span);
41+
_INTERNAL_freezeSpanFeatureFlags(span);
4242
});
4343

4444
statsigClient.on('gate_evaluation', (event: { gate: FeatureGate }) => {
45-
insertFlagToScope(event.gate.name, event.gate.value);
46-
bufferSpanFeatureFlag(event.gate.name, event.gate.value);
45+
_INTERNAL_insertFlagToScope(event.gate.name, event.gate.value);
46+
_INTERNAL_bufferSpanFeatureFlag(event.gate.name, event.gate.value);
4747
});
4848
},
4949

5050
processEvent(event: Event, _hint: EventHint, _client: Client): Event {
51-
return copyFlagsFromScopeToEvent(event);
51+
return _INTERNAL_copyFlagsFromScopeToEvent(event);
5252
},
5353
};
5454
},

packages/browser/src/integrations/featureFlags/unleash/integration.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import type { Client, Event, EventHint, IntegrationFn, Span } from '@sentry/core';
2-
import { defineIntegration, fill, logger } from '@sentry/core';
32
import { DEBUG_BUILD } from '../../../debug-build';
43
import {
5-
bufferSpanFeatureFlag,
6-
copyFlagsFromScopeToEvent,
7-
freezeSpanFeatureFlags,
8-
insertFlagToScope,
9-
} from '../../../utils/featureFlags';
4+
defineIntegration,
5+
fill,
6+
logger,
7+
_INTERNAL_bufferSpanFeatureFlag,
8+
_INTERNAL_copyFlagsFromScopeToEvent,
9+
_INTERNAL_freezeSpanFeatureFlags,
10+
_INTERNAL_insertFlagToScope,
11+
} from '@sentry/core';
1012
import type { UnleashClient, UnleashClientClass } from './types';
1113

1214
type UnleashIntegrationOptions = {
@@ -42,7 +44,7 @@ export const unleashIntegration = defineIntegration(
4244

4345
setup(client: Client) {
4446
client.on('spanEnd', (span: Span) => {
45-
freezeSpanFeatureFlags(span);
47+
_INTERNAL_freezeSpanFeatureFlags(span);
4648
});
4749
},
4850

@@ -52,7 +54,7 @@ export const unleashIntegration = defineIntegration(
5254
},
5355

5456
processEvent(event: Event, _hint: EventHint, _client: Client): Event {
55-
return copyFlagsFromScopeToEvent(event);
57+
return _INTERNAL_copyFlagsFromScopeToEvent(event);
5658
},
5759
};
5860
},
@@ -75,8 +77,8 @@ function _wrappedIsEnabled(
7577
const result = original.apply(this, args);
7678

7779
if (typeof toggleName === 'string' && typeof result === 'boolean') {
78-
insertFlagToScope(toggleName, result);
79-
bufferSpanFeatureFlag(toggleName, result);
80+
_INTERNAL_insertFlagToScope(toggleName, result);
81+
_INTERNAL_bufferSpanFeatureFlag(toggleName, result);
8082
} else if (DEBUG_BUILD) {
8183
logger.error(
8284
`[Feature Flags] UnleashClient.isEnabled does not match expected signature. arg0: ${toggleName} (${typeof toggleName}), result: ${result} (${typeof result})`,

packages/core/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export { consoleLoggingIntegration } from './logs/console-integration';
125125

126126
export type { FeatureFlag } from './featureFlags';
127127
// TODO: ^export from utils?
128-
// TODO: how to export utils without making public?
128+
export { _INTERNAL_copyFlagsFromScopeToEvent, _INTERNAL_insertFlagToScope, _INTERNAL_bufferSpanFeatureFlag, _INTERNAL_freezeSpanFeatureFlags } from './utils/featureFlags';
129129

130130
export { applyAggregateErrorsToEvent } from './utils-hoist/aggregate-errors';
131131
export { getBreadcrumbLogLevelFromHttpStatusCode } from './utils-hoist/breadcrumb-log-level';

packages/core/src/integrations/featureFlags/featureFlagsIntegration.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { type Event, type EventHint } from '../../types-hoist/event';
44
import { type Integration, type IntegrationFn } from '../../types-hoist/integration';
55
import { type Span } from '../../types-hoist/span';
66
import {
7-
bufferSpanFeatureFlag,
8-
copyFlagsFromScopeToEvent,
9-
freezeSpanFeatureFlags,
10-
insertFlagToScope,
7+
_INTERNAL_bufferSpanFeatureFlag,
8+
_INTERNAL_copyFlagsFromScopeToEvent,
9+
_INTERNAL_freezeSpanFeatureFlags,
10+
_INTERNAL_insertFlagToScope,
1111
} from '../../utils/featureFlags';
1212

1313
export interface FeatureFlagsIntegration extends Integration {
@@ -44,17 +44,17 @@ export const featureFlagsIntegration = defineIntegration(() => {
4444

4545
setup(client: Client) {
4646
client.on('spanEnd', (span: Span) => {
47-
freezeSpanFeatureFlags(span);
47+
_INTERNAL_freezeSpanFeatureFlags(span);
4848
});
4949
},
5050

5151
processEvent(event: Event, _hint: EventHint, _client: Client): Event {
52-
return copyFlagsFromScopeToEvent(event);
52+
return _INTERNAL_copyFlagsFromScopeToEvent(event);
5353
},
5454

5555
addFeatureFlag(name: string, value: unknown): void {
56-
insertFlagToScope(name, value);
57-
bufferSpanFeatureFlag(name, value);
56+
_INTERNAL_insertFlagToScope(name, value);
57+
_INTERNAL_bufferSpanFeatureFlag(name, value);
5858
},
5959
};
6060
}) as IntegrationFn<FeatureFlagsIntegration>;

packages/core/src/utils/featureFlags.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ import { getActiveSpan } from './spanUtils';
1616
/**
1717
* Max size of the LRU flag buffer stored in Sentry scope and event contexts.
1818
*/
19-
export const FLAG_BUFFER_SIZE = 100;
19+
const FLAG_BUFFER_SIZE = 100;
2020

2121
/**
2222
* Max number of flag evaluations to record per span.
2323
*/
24-
export const MAX_FLAGS_PER_SPAN = 10;
24+
const MAX_FLAGS_PER_SPAN = 10;
2525

2626
// Global map of spans to feature flag buffers. Populated by feature flag integrations.
2727
GLOBAL_OBJ._spanToFlagBufferMap = new WeakMap<Span, FeatureFlag[]>();
@@ -31,7 +31,7 @@ const SPAN_FLAG_ATTRIBUTE_PREFIX = 'flag.evaluation.';
3131
/**
3232
* Copies feature flags that are in current scope context to the event context
3333
*/
34-
export function copyFlagsFromScopeToEvent(event: Event): Event {
34+
export function _INTERNAL_copyFlagsFromScopeToEvent(event: Event): Event {
3535
const scope = getCurrentScope();
3636
const flagContext = scope.getScopeData().contexts.flags;
3737
const flagBuffer = flagContext ? flagContext.values : [];
@@ -58,13 +58,13 @@ export function copyFlagsFromScopeToEvent(event: Event): Event {
5858
* @param value Value of the feature flag.
5959
* @param maxSize Max number of flags the buffer should store. Default value should always be used in production.
6060
*/
61-
export function insertFlagToScope(name: string, value: unknown, maxSize: number = FLAG_BUFFER_SIZE): void {
61+
export function _INTERNAL_insertFlagToScope(name: string, value: unknown, maxSize: number = FLAG_BUFFER_SIZE): void {
6262
const scopeContexts = getCurrentScope().getScopeData().contexts;
6363
if (!scopeContexts.flags) {
6464
scopeContexts.flags = { values: [] };
6565
}
6666
const flags = scopeContexts.flags.values as FeatureFlag[];
67-
insertToFlagBuffer(flags, name, value, maxSize);
67+
_INTERNAL_insertToFlagBuffer(flags, name, value, maxSize);
6868
}
6969

7070
/**
@@ -80,7 +80,7 @@ export function insertFlagToScope(name: string, value: unknown, maxSize: number
8080
* @param maxSize Max number of flags the buffer should store. Default value should always be used in production.
8181
* @param allowEviction If true, the oldest flag is evicted when the buffer is full. Otherwise the new flag is dropped.
8282
*/
83-
export function insertToFlagBuffer(
83+
export function _INTERNAL_insertToFlagBuffer(
8484
flags: FeatureFlag[],
8585
name: string,
8686
value: unknown,
@@ -128,7 +128,7 @@ export function insertToFlagBuffer(
128128
* @param value Value of the feature flag. Non-boolean values are ignored.
129129
* @param maxFlagsPerSpan Max number of flags a buffer should store. Default value should always be used in production.
130130
*/
131-
export function bufferSpanFeatureFlag(
131+
export function _INTERNAL_bufferSpanFeatureFlag(
132132
name: string,
133133
value: unknown,
134134
maxFlagsPerSpan: number = MAX_FLAGS_PER_SPAN,
@@ -141,7 +141,7 @@ export function bufferSpanFeatureFlag(
141141
const span = getActiveSpan();
142142
if (span) {
143143
const flags = spanFlagMap.get(span) || [];
144-
insertToFlagBuffer(flags, name, value, maxFlagsPerSpan, false);
144+
_INTERNAL_insertToFlagBuffer(flags, name, value, maxFlagsPerSpan, false);
145145
spanFlagMap.set(span, flags);
146146
}
147147
}
@@ -151,7 +151,7 @@ export function bufferSpanFeatureFlag(
151151
*
152152
* @param span Span to add flags to.
153153
*/
154-
export function freezeSpanFeatureFlags(span: Span): void {
154+
export function _INTERNAL_freezeSpanFeatureFlags(span: Span): void {
155155
const flags = GLOBAL_OBJ._spanToFlagBufferMap?.get(span);
156156
if (flags) {
157157
span.setAttributes(

0 commit comments

Comments
 (0)