@@ -59,6 +59,23 @@ export function getPlatform() {
5959 }
6060}
6161
62+ function resolveTelemetryStatus ( ) :
63+ | { enabled : boolean ; source : string }
64+ | undefined {
65+ if ( isDoNotTrackEnabled ( ) ) {
66+ return { enabled : false , source : "DO_NOT_TRACK" } ;
67+ }
68+
69+ if ( process . env . CREATE_CLOUDFLARE_TELEMETRY_DISABLED === "1" ) {
70+ return {
71+ enabled : false ,
72+ source : "CREATE_CLOUDFLARE_TELEMETRY_DISABLED" ,
73+ } ;
74+ }
75+
76+ return undefined ;
77+ }
78+
6279export function createReporter ( ) {
6380 const events : Array < Promise < void > > = [ ] ;
6481 const als = new AsyncLocalStorage < {
@@ -67,7 +84,9 @@ export function createReporter() {
6784
6885 const config = readMetricsConfig ( ) ?? { } ;
6986 const isFirstUsage = config . c3permission === undefined ;
70- const isEnabled = isTelemetryEnabled ( ) ;
87+ const isEnabled =
88+ resolveTelemetryStatus ( ) ?. enabled ??
89+ ( sparrow . hasSparrowSourceKey ( ) && getC3Permission ( config ) . enabled ) ;
7190 const deviceId = getDeviceId ( config ) ;
7291 const packageManager = detectPackageManager ( ) ;
7392 const platform = getPlatform ( ) ;
@@ -110,17 +129,6 @@ export function createReporter() {
110129 events . push ( request ) ;
111130 }
112131
113- function isTelemetryEnabled ( ) {
114- if (
115- isDoNotTrackEnabled ( ) ||
116- process . env . CREATE_CLOUDFLARE_TELEMETRY_DISABLED === "1"
117- ) {
118- return false ;
119- }
120-
121- return sparrow . hasSparrowSourceKey ( ) && getC3Permission ( config ) . enabled ;
122- }
123-
124132 async function waitForAllEventsSettled ( ) : Promise < void > {
125133 await Promise . allSettled ( events ) ;
126134 }
@@ -296,8 +304,9 @@ function updateC3Permission(enabled: boolean) {
296304 writeMetricsConfig ( config ) ;
297305}
298306
299- function logTelemetryStatus ( enabled : boolean ) {
300- logRaw ( `Status: ${ enabled ? "Enabled" : "Disabled" } ` ) ;
307+ function logTelemetryStatus ( enabled : boolean , source ?: string ) {
308+ const sourceMessage = source === undefined ? "" : ` (set by ${ source } )` ;
309+ logRaw ( `Status: ${ enabled ? "Enabled" : "Disabled" } ${ sourceMessage } ` ) ;
301310 logRaw ( "" ) ;
302311}
303312
@@ -320,9 +329,10 @@ export const runTelemetryCommand = (
320329 break ;
321330 }
322331 case "status" : {
323- const telemetry = getC3Permission ( ) ;
332+ const telemetry = resolveTelemetryStatus ( ) ;
333+ const enabled = telemetry ?. enabled ?? getC3Permission ( ) . enabled ;
324334
325- logTelemetryStatus ( telemetry . enabled ) ;
335+ logTelemetryStatus ( enabled , telemetry ?. source ) ;
326336 break ;
327337 }
328338 }
0 commit comments