5
5
6
6
import type { AppInsightsCore , IExtendedConfiguration } from "@microsoft/1ds-core-js" ;
7
7
import type { IChannelConfiguration , IXHROverride , PostChannel } from "@microsoft/1ds-post-js" ;
8
+ import type * as vscode from "vscode" ;
8
9
import type { BaseTelemetryClient } from "./baseTelemetryAppender" ;
9
10
import { AppenderData } from "./baseTelemetryReporter" ;
10
11
@@ -14,7 +15,7 @@ import { AppenderData } from "./baseTelemetryReporter";
14
15
* @param xhrOverride An optional override to use for requests instead of the XHTMLRequest object. Useful for node environments
15
16
* @returns The AI core object
16
17
*/
17
- const getAICore = async ( key : string , xhrOverride ?: IXHROverride ) : Promise < AppInsightsCore > => {
18
+ const getAICore = async ( key : string , vscodeAPI : typeof vscode , xhrOverride ?: IXHROverride ) : Promise < AppInsightsCore > => {
18
19
const oneDs = await import ( "@microsoft/1ds-core-js" ) ;
19
20
const postPlugin = await import ( "@microsoft/1ds-post-js" ) ;
20
21
const appInsightsCore = new oneDs . AppInsightsCore ( ) ;
@@ -46,6 +47,12 @@ const getAICore = async (key: string, xhrOverride?: IXHROverride): Promise<AppIn
46
47
appInsightsCore . initialize ( coreConfig , [ ] ) ;
47
48
48
49
appInsightsCore . addTelemetryInitializer ( ( envelope ) => {
50
+ const config = vscodeAPI . workspace . getConfiguration ( "telemetry" ) ;
51
+ const internalTesting = config . get < boolean > ( "internalTesting" ) ;
52
+ // Only add this flag when `telemetry.internalTesting` is enabled
53
+ if ( ! internalTesting ) {
54
+ return ;
55
+ }
49
56
envelope [ "ext" ] = envelope [ "ext" ] ?? { } ;
50
57
envelope [ "ext" ] [ "utc" ] = envelope [ "ext" ] [ "utc" ] ?? { } ;
51
58
// Sets it to be internal only based on Windows UTC flagging
@@ -60,8 +67,8 @@ const getAICore = async (key: string, xhrOverride?: IXHROverride): Promise<AppIn
60
67
* @param key The ingestion key
61
68
* @param xhrOverride An optional override to use for requests instead of the XHTMLRequest object. Useful for node environments
62
69
*/
63
- export const oneDataSystemClientFactory = async ( key : string , xhrOverride ?: IXHROverride ) : Promise < BaseTelemetryClient > => {
64
- const appInsightsCore = await getAICore ( key , xhrOverride ) ;
70
+ export const oneDataSystemClientFactory = async ( key : string , vscodeAPI : typeof vscode , xhrOverride ?: IXHROverride ) : Promise < BaseTelemetryClient > => {
71
+ const appInsightsCore = await getAICore ( key , vscodeAPI , xhrOverride ) ;
65
72
// Shape the app insights core from 1DS into a standard format
66
73
const telemetryClient : BaseTelemetryClient = {
67
74
logEvent : ( eventName : string , data ?: AppenderData ) => {
0 commit comments