44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import {
|
|
DEFAULT_POSTHOG_API_KEY,
|
|
DEFAULT_POSTHOG_HOST,
|
|
} from "./product-identity"
|
|
|
|
function normalizeEnvValue(value: string | undefined): string | undefined {
|
|
return value?.trim().toLowerCase()
|
|
}
|
|
|
|
function isDisableFlag(value: string | undefined): boolean {
|
|
const normalized = normalizeEnvValue(value)
|
|
return normalized === "1" || normalized === "true"
|
|
}
|
|
|
|
function isTelemetryOptOutFlag(value: string | undefined): boolean {
|
|
const normalized = normalizeEnvValue(value)
|
|
return normalized === "0" || normalized === "false" || normalized === "no"
|
|
}
|
|
|
|
export function shouldDisablePostHog(): boolean {
|
|
return (
|
|
isDisableFlag(process.env.OMO_DISABLE_POSTHOG) ||
|
|
isTelemetryOptOutFlag(process.env.OMO_SEND_ANONYMOUS_TELEMETRY) ||
|
|
isDisableFlag(process.env.OMO_CODEX_DISABLE_POSTHOG) ||
|
|
isTelemetryOptOutFlag(process.env.OMO_CODEX_SEND_ANONYMOUS_TELEMETRY)
|
|
)
|
|
}
|
|
|
|
export function getPostHogApiKey(): string {
|
|
const explicit = process.env.POSTHOG_API_KEY
|
|
if (explicit === undefined) {
|
|
return DEFAULT_POSTHOG_API_KEY
|
|
}
|
|
return explicit.trim()
|
|
}
|
|
|
|
export function hasPostHogApiKey(): boolean {
|
|
return getPostHogApiKey().length > 0
|
|
}
|
|
|
|
export function getPostHogHost(): string {
|
|
return process.env.POSTHOG_HOST?.trim() || DEFAULT_POSTHOG_HOST
|
|
}
|