Environment Variable Validation with next-env

Give an example of using the next-env library to validate and load environment variables during the build time.
import { loadEnvConfig } from '@next/env';

// Run environment variable validation and loading
const projectDir = process.cwd();

// Here you would normally add your logic to validate
// specific environment variables as required for your application
Loads environment variables using 'loadEnvConfig' from '@next/env' at the specified project directory (usually current working directory). After loading, additional application-specific validation logic can be implemented.
import { cleanEnv, str, num } from 'envalid';

// Define the environment variable schema
const envSchema = {
    DATABASE_URL: str(),
    PORT: num({ default: 3000 })

// Validate and clean the process.env object
const validatedEnv = cleanEnv(process.env, envSchema);

// Now process.env contains only the validated and cleaned env vars
console.log('Validated Environment Variables:', validatedEnv);
Uses 'envalid' to validate specific environment variables according to the defined schema, which includes a string for 'DATABASE_URL' and a number for 'PORT' with a default value of 3000. It then logs the validated environment variables.