( enable, oTelEndpoint = 'http://localhost:4317', target = 'local', originalSandboxSettingToRestore, )
| 290 | } |
| 291 | |
| 292 | export function manageTelemetrySettings( |
| 293 | enable, |
| 294 | oTelEndpoint = 'http://localhost:4317', |
| 295 | target = 'local', |
| 296 | originalSandboxSettingToRestore, |
| 297 | ) { |
| 298 | const workspaceSettings = readJsonFile(WORKSPACE_SETTINGS_FILE); |
| 299 | const currentSandboxSetting = workspaceSettings.sandbox; |
| 300 | let settingsModified = false; |
| 301 | |
| 302 | if (typeof workspaceSettings.telemetry !== 'object') { |
| 303 | workspaceSettings.telemetry = {}; |
| 304 | } |
| 305 | |
| 306 | if (enable) { |
| 307 | if (workspaceSettings.telemetry.enabled !== true) { |
| 308 | workspaceSettings.telemetry.enabled = true; |
| 309 | settingsModified = true; |
| 310 | console.log('⚙️ Enabled telemetry in workspace settings.'); |
| 311 | } |
| 312 | if (workspaceSettings.sandbox !== false) { |
| 313 | workspaceSettings.sandbox = false; |
| 314 | settingsModified = true; |
| 315 | console.log('✅ Disabled sandbox mode for telemetry.'); |
| 316 | } |
| 317 | if (workspaceSettings.telemetry.otlpEndpoint !== oTelEndpoint) { |
| 318 | workspaceSettings.telemetry.otlpEndpoint = oTelEndpoint; |
| 319 | settingsModified = true; |
| 320 | console.log(`🔧 Set telemetry OTLP endpoint to ${oTelEndpoint}.`); |
| 321 | } |
| 322 | if (workspaceSettings.telemetry.target !== target) { |
| 323 | workspaceSettings.telemetry.target = target; |
| 324 | settingsModified = true; |
| 325 | console.log(`🎯 Set telemetry target to ${target}.`); |
| 326 | } |
| 327 | } else { |
| 328 | if (workspaceSettings.telemetry.enabled === true) { |
| 329 | delete workspaceSettings.telemetry.enabled; |
| 330 | settingsModified = true; |
| 331 | console.log('⚙️ Disabled telemetry in workspace settings.'); |
| 332 | } |
| 333 | if (workspaceSettings.telemetry.otlpEndpoint) { |
| 334 | delete workspaceSettings.telemetry.otlpEndpoint; |
| 335 | settingsModified = true; |
| 336 | console.log('🔧 Cleared telemetry OTLP endpoint.'); |
| 337 | } |
| 338 | if (workspaceSettings.telemetry.target) { |
| 339 | delete workspaceSettings.telemetry.target; |
| 340 | settingsModified = true; |
| 341 | console.log('🎯 Cleared telemetry target.'); |
| 342 | } |
| 343 | if (Object.keys(workspaceSettings.telemetry).length === 0) { |
| 344 | delete workspaceSettings.telemetry; |
| 345 | } |
| 346 | |
| 347 | if ( |
| 348 | originalSandboxSettingToRestore !== undefined && |
| 349 | workspaceSettings.sandbox !== originalSandboxSettingToRestore |
no test coverage detected