@@ -3,6 +3,7 @@ import type {EnvSchema, ParsedEnv, EnvConfig} from "../types";
33import { config } from "dotenv" ;
44import { pretty } from "../utils/pretty" ;
55import { isGitIgnored } from "../git/ignore-checker.ts" ;
6+ import { zodIssuesToErrors } from "../utils/helpers.ts" ;
67
78config ( {
89 path : ".env.axogen" ,
@@ -26,46 +27,7 @@ function handleValidationError(
2627 config : Required < EnvConfig >
2728) : void {
2829 if ( ! config . silent ) {
29- const validationErrors = error . issues . map ( ( issue ) => {
30- const field = issue . path . join ( "." ) ;
31-
32- // Determine error type based on Zod error codes
33- let type : "missing" | "invalid" | "type" = "invalid" ;
34- if ( issue . code === "invalid_type" && issue . input === undefined ) {
35- type = "missing" ;
36- } else if ( issue . code === "invalid_type" ) {
37- type = "type" ;
38- }
39-
40- // Create user-friendly error messages
41- let message = issue . message ;
42- if ( issue . code === "invalid_type" ) {
43- const invalidTypeIssue = issue as any ;
44- if (
45- invalidTypeIssue . expected &&
46- invalidTypeIssue . received &&
47- type === "type"
48- ) {
49- message = `expected ${ invalidTypeIssue . expected } , got ${ invalidTypeIssue . received } ` ;
50- }
51- } else if ( issue . code === "too_small" ) {
52- const tooSmallIssue = issue as any ;
53- if ( tooSmallIssue . minimum !== undefined ) {
54- message = `minimum value: ${ tooSmallIssue . minimum } ` ;
55- }
56- } else if ( issue . code === "too_big" ) {
57- const tooBigIssue = issue as any ;
58- if ( tooBigIssue . maximum !== undefined ) {
59- message = `maximum value: ${ tooBigIssue . maximum } ` ;
60- }
61- }
62-
63- return {
64- field,
65- message,
66- type,
67- } ;
68- } ) ;
30+ const validationErrors = zodIssuesToErrors ( error . issues ) ;
6931
7032 pretty . validation . errorGroup (
7133 "Environment variable validation failed" ,
0 commit comments