@reliverse/rse-sdk
Version:
@reliverse/rse-sdk allows you to create new plugins for @reliverse/rse CLI, interact with reliverse.org, and even extend your own CLI functionality (you may also try @reliverse/dler-sdk for this case).
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();
}
}