process.env 를 스키마로 parse 하면 빠진 값은 시작할 때 ZodError 로 터지고1, 결과에는 선언한 키만 남는다2.

import z from 'zod'

const envSchema = z.object({
  REACT_APP_FEATURE_VAC_ASK: z.string(),
  REACT_APP_FEATURE_RECORDS: z.string(),
  NODE_ENV: z.enum(['development', 'test', 'production']).default('development'),
})

const windowSchema = z.object({
   SOMETHING_COOL: z.string()
})

export const ENV = envSchema.parse(process.env)
export const WINDOW = windowSchema.parse(window)

Footnotes

  1. Basic usage | Zod: “When validation fails, the .parse() method will throw a ZodError instance with granular information about the validation issues.” ↩

  2. Defining schemas | Zod: “By default, unrecognized keys are stripped from the parsed result” ↩

`#280`