mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-20 06:20:11 +00:00
Backport of #9409 to `cloud/1.40`. Automatically created by manual backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9457-backport-cloud-1-40-feat-Add-PostHog-telemetry-provider-31b6d73d365081ac9eb4d596daafddf3) by [Unito](https://www.unito.io)
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
/**
|
|
* Telemetry Provider - Cloud Initialization
|
|
*
|
|
* This module is only imported in cloud builds to keep
|
|
* cloud telemetry code out of local/desktop bundles.
|
|
*/
|
|
import { setTelemetryRegistry } from './index'
|
|
|
|
const IS_CLOUD_BUILD = __DISTRIBUTION__ === 'cloud'
|
|
|
|
let _initPromise: Promise<void> | null = null
|
|
|
|
/**
|
|
* Initialize telemetry providers for cloud builds.
|
|
* Must be called early in app startup (e.g., main.ts).
|
|
* Safe to call multiple times - only initializes once.
|
|
*/
|
|
export async function initTelemetry(): Promise<void> {
|
|
if (!IS_CLOUD_BUILD) return
|
|
if (_initPromise) return _initPromise
|
|
|
|
_initPromise = (async () => {
|
|
const [
|
|
{ TelemetryRegistry },
|
|
{ MixpanelTelemetryProvider },
|
|
{ GtmTelemetryProvider },
|
|
{ ImpactTelemetryProvider },
|
|
{ PostHogTelemetryProvider }
|
|
] = await Promise.all([
|
|
import('./TelemetryRegistry'),
|
|
import('./providers/cloud/MixpanelTelemetryProvider'),
|
|
import('./providers/cloud/GtmTelemetryProvider'),
|
|
import('./providers/cloud/ImpactTelemetryProvider'),
|
|
import('./providers/cloud/PostHogTelemetryProvider')
|
|
])
|
|
|
|
const registry = new TelemetryRegistry()
|
|
registry.registerProvider(new MixpanelTelemetryProvider())
|
|
registry.registerProvider(new GtmTelemetryProvider())
|
|
registry.registerProvider(new ImpactTelemetryProvider())
|
|
registry.registerProvider(new PostHogTelemetryProvider())
|
|
|
|
setTelemetryRegistry(registry)
|
|
})()
|
|
|
|
return _initPromise
|
|
}
|