| 816 | }; |
| 817 | |
| 818 | export const validateEnv = (source: EnvSource = process.env): Env => { |
| 819 | const raw = readRaw(source); |
| 820 | const schemaErrors = formatSchemaErrors(raw); |
| 821 | |
| 822 | if (schemaErrors.length > 0) { |
| 823 | throw new Error( |
| 824 | `Invalid environment configuration:\n - ${schemaErrors.join("\n - ")}` |
| 825 | ); |
| 826 | } |
| 827 | |
| 828 | const parsed = Value.Cast(envSchema, raw); |
| 829 | const invariantErrors = checkInvariants(parsed); |
| 830 | |
| 831 | if (invariantErrors.length > 0) { |
| 832 | throw new Error( |
| 833 | `Invalid environment configuration:\n - ${invariantErrors.join("\n - ")}` |
| 834 | ); |
| 835 | } |
| 836 | |
| 837 | return parsed; |
| 838 | }; |