@reliverse/rse
Version:
@reliverse/rse is your all-in-one companion for bootstrapping and improving any kind of projects (especially web apps built with frameworks like Next.js) — whether you're kicking off something new or upgrading an existing app. It is also a little AI-power
33 lines (32 loc) • 977 B
JavaScript
import { PostHog } from "posthog-node";
import { getLatestCLIVersion } from "./get-latest-cli-version.js";
const POSTHOG_API_KEY = process.env.POSTHOG_API_KEY || "";
const POSTHOG_HOST = process.env.POSTHOG_HOST;
export async function trackProjectCreation(config) {
const posthog = new PostHog(POSTHOG_API_KEY, {
host: POSTHOG_HOST,
flushAt: 1,
flushInterval: 0,
privacyMode: true,
disableGeoip: true,
disabled: process.env.MODE !== "prod"
});
try {
const sessionId = `cli_${crypto.randomUUID().replace(/-/g, "")}`;
const { projectName, projectDir, relativePath, ...safeConfig } = config;
posthog.capture({
distinctId: sessionId,
event: "project_created",
properties: {
...safeConfig,
cli_version: getLatestCLIVersion(),
node_version: process.version,
platform: process.platform,
$ip: null
}
});
} catch (_error) {
} finally {
await posthog.shutdown();
}
}