Typesafe Env Variables

La mejor forma de añadir typesafety a enviroment variables es la siguiente en NextJS:

pnpm add @t3-oss/env-nextjs zod

src/env.mjs

// @ts-check // tells TS to type check this file as well, despite it is a JS file
 
import { createEnv } from '@t3-oss/env-nextjs';
import { z } from 'zod';
 
export const env = createEnv({
  shared: {},
  server: {
	  DATABASE_URL: z.string().url()
  },
  client: {},
  experimental__runtimeEnv: {},
});

💡
Renombrar extensión de next.config .mjs y añadir:
next.config.mjs

import("./src/env.mjs")
 
/** @type {import("next").NextConfig} */
 
const config = {};
 
export default config