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() { async rewrites() {
return [ return [
{ ...(!!env.POSTHOG_PROXY_PATH && !env.NEXT_PUBLIC_POSTHOG_HOST ? [{
source: "/" + env.POSTHOG_PROXY_PATH + "/:path*", source: "/" + env.POSTHOG_PROXY_PATH + "/:path*",
destination: env.NEXT_PUBLIC_POSTHOG_HOST + "/: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_WEBHOOK_SECRET: z.string().nullish(),
STRIPE_MONTHLY_PRICE_ID: z.string().nullish(), STRIPE_MONTHLY_PRICE_ID: z.string().nullish(),
STRIPE_ANNUAL_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_URL: z.string().nullish(),
UPSTASH_REDIS_REST_TOKEN: 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_STRIPE_PUBLISHABLE_KEY: z.string().nullish(),
NEXT_PUBLIC_CRISP_WEBSITE_ID: z.string().nullish(), NEXT_PUBLIC_CRISP_WEBSITE_ID: z.string().nullish(),
NEXT_PUBLIC_POSTHOG_KEY: z.string().nullish(), NEXT_PUBLIC_POSTHOG_KEY: z.string().nullish(),
NEXT_PUBLIC_POSTHOG_HOST: z.string(), NEXT_PUBLIC_POSTHOG_HOST: z.string().nullish(),
NEXT_PUBLIC_POSTHOG_PROXY_HOST: z.string(), 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"; import { type ReactNode, useEffect } from "react";
// Check that PostHog is client-side (used to handle Next.js SSR) // 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, { posthog.init(env.NEXT_PUBLIC_POSTHOG_KEY, {
api_host: env.NEXT_PUBLIC_POSTHOG_PROXY_HOST, api_host: env.NEXT_PUBLIC_POSTHOG_PROXY_HOST,
// Enable debug mode in development // Enable debug mode in development

View file

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

View file

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