diff options
Diffstat (limited to 'apps/browser-extension/utils/posthog.ts')
| -rw-r--r-- | apps/browser-extension/utils/posthog.ts | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/apps/browser-extension/utils/posthog.ts b/apps/browser-extension/utils/posthog.ts index cdcdbc4e..8cf0b557 100644 --- a/apps/browser-extension/utils/posthog.ts +++ b/apps/browser-extension/utils/posthog.ts @@ -1,21 +1,21 @@ -import { PostHog } from "posthog-js/dist/module.no-external" -import { STORAGE_KEYS } from "./constants" +import { PostHog } from "posthog-js/dist/module.no-external"; +import { STORAGE_KEYS } from "./constants"; export async function identifyUser(posthog: PostHog): Promise<void> { - const stored = await chrome.storage.local.get([STORAGE_KEYS.USER_DATA]) - const userData = stored[STORAGE_KEYS.USER_DATA] + const stored = await chrome.storage.local.get([STORAGE_KEYS.USER_DATA]); + const userData = stored[STORAGE_KEYS.USER_DATA]; if (userData?.userId) { posthog.identify(userData.userId, { email: userData.email, name: userData.name, userId: userData.userId, - }) + }); } } -let posthogInstance: PostHog | null = null -let initializationPromise: Promise<PostHog> | null = null +let posthogInstance: PostHog | null = null; +let initializationPromise: Promise<PostHog> | null = null; export const POSTHOG_CONFIG = { api_host: "https://api.supermemory.ai/orange", @@ -24,40 +24,40 @@ export const POSTHOG_CONFIG = { persistence: "localStorage", capture_pageview: false, autocapture: false, -} as const +} as const; export async function getPostHogInstance(): Promise<PostHog> { if (posthogInstance) { - return posthogInstance + return posthogInstance; } if (initializationPromise) { - return initializationPromise + return initializationPromise; } - initializationPromise = initializePostHog() - return initializationPromise + initializationPromise = initializePostHog(); + return initializationPromise; } async function initializePostHog(): Promise<PostHog> { try { - const posthog = new PostHog() + const posthog = new PostHog(); if (!import.meta.env.WXT_POSTHOG_API_KEY) { - console.error("PostHog API key not configured") - throw new Error("PostHog API key not configured") + console.error("PostHog API key not configured"); + throw new Error("PostHog API key not configured"); } - posthog.init(import.meta.env.WXT_POSTHOG_API_KEY || "", POSTHOG_CONFIG) + posthog.init(import.meta.env.WXT_POSTHOG_API_KEY || "", POSTHOG_CONFIG); - await identifyUser(posthog) + await identifyUser(posthog); - posthogInstance = posthog - return posthog + posthogInstance = posthog; + return posthog; } catch (error) { - console.error("Failed to initialize PostHog:", error) - initializationPromise = null - throw error + console.error("Failed to initialize PostHog:", error); + initializationPromise = null; + throw error; } } @@ -66,9 +66,9 @@ export async function trackEvent( properties?: Record<string, unknown>, ): Promise<void> { try { - const posthog = await getPostHogInstance() - posthog.capture(eventName, properties) + const posthog = await getPostHogInstance(); + posthog.capture(eventName, properties); } catch (error) { - console.error(`Failed to track event ${eventName}:`, error) + console.error(`Failed to track event ${eventName}:`, error); } } |