Implement posthog

This commit is contained in:
2025-07-06 14:02:22 +03:00
parent f7d994d02e
commit 1e099d88ae
13 changed files with 209 additions and 41 deletions

28
server/plugins/posthog.ts Normal file
View File

@@ -0,0 +1,28 @@
import { PostHog } from "posthog-node";
export default defineNitroPlugin((nitroApp) => {
const runtimeConfig = useRuntimeConfig();
const posthog = new PostHog(runtimeConfig.public.posthogPublicKey, {
host: runtimeConfig.public.posthogHost,
defaults: runtimeConfig.public.posthogDefaults,
});
nitroApp.hooks.hook("request", (event) => {
event.context.posthog = posthog;
});
nitroApp.hooks.hook("beforeResponse", async () => {
await posthog.shutdown();
});
nitroApp.hooks.hook("close", async () => {
await posthog.shutdown();
});
});
declare module "h3" {
interface H3EventContext {
posthog: PostHog;
}
}