-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclientEnv.ts
More file actions
34 lines (30 loc) · 1.29 KB
/
clientEnv.ts
File metadata and controls
34 lines (30 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { z } from 'zod';
const envSchema = z.object({
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME: z.string().min(1),
NEXT_PUBLIC_APP_URL: z.url().default('http://localhost:3000'),
NEXT_PUBLIC_CF_ANALYTICS_TOKEN: z.string().optional(),
NEXT_PUBLIC_CW_RUM_APP_MONITOR_ID: z.string().optional(),
NEXT_PUBLIC_CW_RUM_IDENTITY_POOL_ID: z.string().optional(),
NEXT_PUBLIC_AWS_REGION: z.string(),
NEXT_PUBLIC_SENTRY_DSN: z.string().optional(),
});
const parsed = envSchema.safeParse({
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME:
process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME || undefined,
NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL || undefined,
NEXT_PUBLIC_CF_ANALYTICS_TOKEN:
process.env.NEXT_PUBLIC_CF_ANALYTICS_TOKEN || undefined,
NEXT_PUBLIC_CW_RUM_APP_MONITOR_ID:
process.env.NEXT_PUBLIC_CW_RUM_APP_MONITOR_ID || undefined,
NEXT_PUBLIC_CW_RUM_IDENTITY_POOL_ID:
process.env.NEXT_PUBLIC_CW_RUM_IDENTITY_POOL_ID || undefined,
NEXT_PUBLIC_AWS_REGION: process.env.NEXT_PUBLIC_AWS_REGION || undefined,
NEXT_PUBLIC_SENTRY_DSN: process.env.NEXT_PUBLIC_SENTRY_DSN || undefined,
});
if (!parsed.success) {
console.error(
'❌ Invalid environment variables:\n' + z.prettifyError(parsed.error),
);
throw new Error('Invalid environment variables');
}
export const clientEnv = parsed.data;