mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-03-14 09:27:41 +00:00
Add PostHog as a telemetry provider for cloud builds so custom events can be correlated with session recordings. Follows the same pattern as MixpanelTelemetryProvider with dynamic import, event queuing, and disabled events from remote config. Tree-shaken away in OSS builds. The posthog-js package uses Apache-2.0 (verified from its LICENSE file) but declares it as "SEE LICENSE IN LICENSE" in package.json, which the license checker can't parse. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9409-feat-Add-PostHog-telemetry-provider-31a6d73d3650818b8e86c772c6551099) 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
|
|
}
|