From fa3f1302088c819595c856cbccec948157508e65 Mon Sep 17 00:00:00 2001 From: Carter LaVigne Date: Tue, 17 Dec 2024 15:09:19 -0600 Subject: [PATCH 1/3] empty string --- apps/web/src/env.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index 9b6c7a54..79fdff06 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -1,21 +1,29 @@ import { createEnv } from "@t3-oss/env-nextjs"; import { z } from "zod"; +// Helper function to handle empty strings as undefined +const stringOrUndefined = z + .string() + .refine((val) => val !== "", { message: "Value cannot be an empty string" }) + .transform((val) => (val === "" ? undefined : val)); + export const env = createEnv({ server: { - CLERK_SECRET_KEY: z.string().min(1), - AWS_SES_ACCESS_KEY: z.string().min(1), - AWS_SES_SECRET_ACCESS_KEY: z.string().min(1), - AWS_REGION: z.string().min(1), - AWS_SES_EMAIL_FROM: z.string().min(1), - INTERNAL_AUTH_KEY: z.string().min(64), - BOT_API_URL: z.string().min(1), + CLERK_SECRET_KEY: stringOrUndefined, + AWS_SES_ACCESS_KEY: stringOrUndefined, + AWS_SES_SECRET_ACCESS_KEY: stringOrUndefined, + AWS_REGION: stringOrUndefined, + AWS_SES_EMAIL_FROM: stringOrUndefined, + INTERNAL_AUTH_KEY: z.string().min(64, { + message: "INTERNAL_AUTH_KEY must be at least 64 characters", + }), + BOT_API_URL: stringOrUndefined, NODE_ENV: z .enum(["development", "test", "production"]) .default("development"), }, client: { - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string().min(1), + NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: stringOrUndefined, }, // If you're using Next.js < 13.4.4, you'll need to specify the runtimeEnv manually // runtimeEnv: { From 7198fabe4f5bd4363ae2f311ec587ac7152c3080 Mon Sep 17 00:00:00 2001 From: Carter LaVigne Date: Sat, 18 Jan 2025 11:49:36 -0600 Subject: [PATCH 2/3] Flag update --- apps/web/src/env.ts | 63 +++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index 79fdff06..ac23d4e5 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -1,39 +1,34 @@ import { createEnv } from "@t3-oss/env-nextjs"; import { z } from "zod"; -// Helper function to handle empty strings as undefined -const stringOrUndefined = z - .string() - .refine((val) => val !== "", { message: "Value cannot be an empty string" }) - .transform((val) => (val === "" ? undefined : val)); - export const env = createEnv({ - server: { - CLERK_SECRET_KEY: stringOrUndefined, - AWS_SES_ACCESS_KEY: stringOrUndefined, - AWS_SES_SECRET_ACCESS_KEY: stringOrUndefined, - AWS_REGION: stringOrUndefined, - AWS_SES_EMAIL_FROM: stringOrUndefined, - INTERNAL_AUTH_KEY: z.string().min(64, { - message: "INTERNAL_AUTH_KEY must be at least 64 characters", - }), - BOT_API_URL: stringOrUndefined, - NODE_ENV: z - .enum(["development", "test", "production"]) - .default("development"), - }, - client: { - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: stringOrUndefined, - }, - // If you're using Next.js < 13.4.4, you'll need to specify the runtimeEnv manually - // runtimeEnv: { - // DATABASE_URL: process.env.DATABASE_URL, - // OPEN_AI_API_KEY: process.env.OPEN_AI_API_KEY, - // NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY, - // }, - // For Next.js >= 13.4.4, you only need to destructure client variables: - experimental__runtimeEnv: { - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: - process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, - }, + server: { + CLERK_SECRET_KEY: z.string(), + AWS_SES_ACCESS_KEY: z.string(), + AWS_SES_SECRET_ACCESS_KEY: z.string(), + AWS_REGION: z.string(), + AWS_SES_EMAIL_FROM: z.string(), + INTERNAL_AUTH_KEY: z.string().min(64, { + message: "INTERNAL_AUTH_KEY must be at least 64 characters", + }), + BOT_API_URL: z.string(), + NODE_ENV: z + .enum(["development", "test", "production"]) + .default("development"), + }, + client: { + NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string(), + }, + // If you're using Next.js < 13.4.4, you'll need to specify the runtimeEnv manually + // runtimeEnv: { + // DATABASE_URL: process.env.DATABASE_URL, + // OPEN_AI_API_KEY: process.env.OPEN_AI_API_KEY, + // NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY, + // }, + // For Next.js >= 13.4.4, you only need to destructure client variables: + experimental__runtimeEnv: { + NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, + }, + // Enable the flag to treat empty strings as undefined + emptyStringAsUndefined: true, }); From 8e2b282a9c96c9d259b0ff5d73408b2956ad5b98 Mon Sep 17 00:00:00 2001 From: Carter LaVigne Date: Mon, 20 Jan 2025 14:11:28 -0600 Subject: [PATCH 3/3] prettier check --- apps/web/src/env.ts | 59 +++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/apps/web/src/env.ts b/apps/web/src/env.ts index 7843fb48..556928b8 100644 --- a/apps/web/src/env.ts +++ b/apps/web/src/env.ts @@ -2,34 +2,35 @@ import { createEnv } from "@t3-oss/env-nextjs"; import { z } from "zod"; export const env = createEnv({ - server: { - CLERK_SECRET_KEY: z.string(), - AWS_SES_ACCESS_KEY: z.string(), - AWS_SES_SECRET_ACCESS_KEY: z.string(), - AWS_REGION: z.string(), - AWS_SES_EMAIL_FROM: z.string(), - INTERNAL_AUTH_KEY: z.string().min(64, { - message: "INTERNAL_AUTH_KEY must be at least 64 characters", - }), - BOT_API_URL: z.string(), + server: { + CLERK_SECRET_KEY: z.string(), + AWS_SES_ACCESS_KEY: z.string(), + AWS_SES_SECRET_ACCESS_KEY: z.string(), + AWS_REGION: z.string(), + AWS_SES_EMAIL_FROM: z.string(), + INTERNAL_AUTH_KEY: z.string().min(64, { + message: "INTERNAL_AUTH_KEY must be at least 64 characters", + }), + BOT_API_URL: z.string(), HK_ENV: z.string().min(1), - NODE_ENV: z - .enum(["development", "test", "production"]) - .default("development"), - }, - client: { - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string(), - }, - // If you're using Next.js < 13.4.4, you'll need to specify the runtimeEnv manually - // runtimeEnv: { - // DATABASE_URL: process.env.DATABASE_URL, - // OPEN_AI_API_KEY: process.env.OPEN_AI_API_KEY, - // NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY, - // }, - // For Next.js >= 13.4.4, you only need to destructure client variables: - experimental__runtimeEnv: { - NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, - }, - // Enable the flag to treat empty strings as undefined - emptyStringAsUndefined: true, + NODE_ENV: z + .enum(["development", "test", "production"]) + .default("development"), + }, + client: { + NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: z.string(), + }, + // If you're using Next.js < 13.4.4, you'll need to specify the runtimeEnv manually + // runtimeEnv: { + // DATABASE_URL: process.env.DATABASE_URL, + // OPEN_AI_API_KEY: process.env.OPEN_AI_API_KEY, + // NEXT_PUBLIC_PUBLISHABLE_KEY: process.env.NEXT_PUBLIC_PUBLISHABLE_KEY, + // }, + // For Next.js >= 13.4.4, you only need to destructure client variables: + experimental__runtimeEnv: { + NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: + process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY, + }, + // Enable the flag to treat empty strings as undefined + emptyStringAsUndefined: true, });