make posthog variables optional

This commit is contained in:
MarconLP 2023-07-16 17:51:06 +02:00
parent 705a07b9ca
commit 0aee54bd10
No known key found for this signature in database
GPG key ID: A08A9C8B623F5EA5
5 changed files with 18 additions and 13 deletions

View file

@ -26,10 +26,10 @@ const config = {
async rewrites() {
return [
{
...(!!env.POSTHOG_PROXY_PATH && !env.NEXT_PUBLIC_POSTHOG_HOST ? [{
source: "/" + env.POSTHOG_PROXY_PATH + "/:path*",
destination: env.NEXT_PUBLIC_POSTHOG_HOST + "/:path*",
},
}]: []),
];
},
};

View file

@ -32,7 +32,7 @@ const server = z.object({
STRIPE_WEBHOOK_SECRET: z.string().nullish(),
STRIPE_MONTHLY_PRICE_ID: z.string().nullish(),
STRIPE_ANNUAL_PRICE_ID: z.string().nullish(),
POSTHOG_PROXY_PATH: z.string(),
POSTHOG_PROXY_PATH: z.string().nullish(),
UPSTASH_REDIS_REST_URL: z.string().nullish(),
UPSTASH_REDIS_REST_TOKEN: z.string().nullish(),
});
@ -46,8 +46,8 @@ const client = z.object({
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: z.string().nullish(),
NEXT_PUBLIC_CRISP_WEBSITE_ID: z.string().nullish(),
NEXT_PUBLIC_POSTHOG_KEY: z.string().nullish(),
NEXT_PUBLIC_POSTHOG_HOST: z.string(),
NEXT_PUBLIC_POSTHOG_PROXY_HOST: z.string(),
NEXT_PUBLIC_POSTHOG_HOST: z.string().nullish(),
NEXT_PUBLIC_POSTHOG_PROXY_HOST: z.string().nullish(),
});
/**

View file

@ -12,7 +12,11 @@ import { env } from "~/env.mjs";
import { type ReactNode, useEffect } from "react";
// Check that PostHog is client-side (used to handle Next.js SSR)
if (typeof window !== "undefined" && !!env.NEXT_PUBLIC_POSTHOG_KEY) {
if (
typeof window !== "undefined" &&
!!env.NEXT_PUBLIC_POSTHOG_KEY &&
!!env.NEXT_PUBLIC_POSTHOG_PROXY_HOST
) {
posthog.init(env.NEXT_PUBLIC_POSTHOG_KEY, {
api_host: env.NEXT_PUBLIC_POSTHOG_PROXY_HOST,
// Enable debug mode in development

View file

@ -74,7 +74,7 @@ export const authOptions: NextAuthOptions = {
],
events: {
async signIn(message) {
if (!!env.NEXT_PUBLIC_POSTHOG_KEY) {
if (!!env.NEXT_PUBLIC_POSTHOG_KEY && !!env.NEXT_PUBLIC_POSTHOG_HOST) {
const client = new PostHog(env.NEXT_PUBLIC_POSTHOG_KEY, {
host: env.NEXT_PUBLIC_POSTHOG_HOST,
});
@ -92,7 +92,7 @@ export const authOptions: NextAuthOptions = {
}
},
async signOut(message) {
if (!!env.NEXT_PUBLIC_POSTHOG_KEY) {
if (!!env.NEXT_PUBLIC_POSTHOG_KEY && !!env.NEXT_PUBLIC_POSTHOG_HOST) {
const session = message.session as unknown as {
id: string;
sessionToken: string;

View file

@ -1,7 +1,8 @@
import { PostHog } from "posthog-node";
import { env } from "~/env.mjs";
export const posthog = !!env.NEXT_PUBLIC_POSTHOG_KEY
export const posthog =
!!env.NEXT_PUBLIC_POSTHOG_KEY && !!env.NEXT_PUBLIC_POSTHOG_HOST
? new PostHog(env.NEXT_PUBLIC_POSTHOG_KEY, {
host: env.NEXT_PUBLIC_POSTHOG_HOST,
})