29 lines
655 B
TypeScript
29 lines
655 B
TypeScript
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;
|
|
}
|
|
}
|