Skip to main content
Rewrite a platform’s config schema so every string-leaf field falls back to SPECTRUM_<PLATFORM>_<KEY> when omitted which is the equivalent of hand-wrapping each field with fromEnv. Called once by definePlatform, so adapters declare plain Zod and get env fallback for free.
  • object: each string-leaf field is wrapped with fromEnv; non-string fields (records, arrays, nested objects, booleans, numbers) are left as-is. The object is only reconstructed when a field actually changed, and .strict() is preserved so an empty strict “cloud” branch is untouched.
  • union: each option is rewritten independently, so an env value only satisfies the branch that declares that field (a direct/cloud union stays correctly discriminated).
  • anything else is returned unchanged.
The output type is identical to the input schema’s. Only omitted fields gain an env fallback which means that z.infer and downstream contexts are unaffected.