@@ -10,6 +10,16 @@ import { VALID_FLAW_CHECKS } from "../constants/index.js";
10
10
const dirname = fileURLToPath ( new URL ( "." , import . meta. url ) ) ;
11
11
const ROOT = path . join ( dirname , ".." , ".." ) ;
12
12
13
+ function parse ( value ) {
14
+ try {
15
+ JSON . parse ( value ) ;
16
+ } catch ( e ) {
17
+ throw new Error ( `Error parsing value '${ value } ' in .env file` , {
18
+ cause : e ,
19
+ } ) ;
20
+ }
21
+ }
22
+
13
23
dotenv . config ( {
14
24
path : path . join ( cwd ( ) , process . env . ENV_FILE || ".env" ) ,
15
25
} ) ;
@@ -30,14 +40,14 @@ export const FILES = process.env.BUILD_FILES || "";
30
40
export const FOLDERSEARCH = process . env . BUILD_FOLDERSEARCH || "" ;
31
41
export const GOOGLE_ANALYTICS_ACCOUNT =
32
42
process . env . BUILD_GOOGLE_ANALYTICS_ACCOUNT || "" ;
33
- export const GOOGLE_ANALYTICS_DEBUG = JSON . parse (
43
+ export const GOOGLE_ANALYTICS_DEBUG = parse (
34
44
process . env . BUILD_GOOGLE_ANALYTICS_DEBUG || "false"
35
45
) ;
36
46
export const NO_PROGRESSBAR = Boolean (
37
- JSON . parse ( process . env . BUILD_NO_PROGRESSBAR || process . env . CI || "false" )
47
+ parse ( process . env . BUILD_NO_PROGRESSBAR || process . env . CI || "false" )
38
48
) ;
39
- export const FIX_FLAWS = JSON . parse ( process . env . BUILD_FIX_FLAWS || "false" ) ;
40
- export const FIX_FLAWS_DRY_RUN = JSON . parse (
49
+ export const FIX_FLAWS = parse ( process . env . BUILD_FIX_FLAWS || "false" ) ;
50
+ export const FIX_FLAWS_DRY_RUN = parse (
41
51
process . env . BUILD_FIX_FLAWS_DRY_RUN || "false"
42
52
) ;
43
53
export const FIX_FLAWS_TYPES = new Set (
@@ -53,14 +63,14 @@ if ([...FIX_FLAWS_TYPES].some((flawType) => !VALID_FLAW_CHECKS.has(flawType))) {
53
63
) ;
54
64
}
55
65
56
- export const FIX_FLAWS_VERBOSE = JSON . parse (
66
+ export const FIX_FLAWS_VERBOSE = parse (
57
67
// It's on by default because it's such a sensible option to always have
58
68
// on.
59
69
process . env . BUILD_FIX_FLAWS_VERBOSE || "true"
60
70
) ;
61
71
62
72
// See explanation in docs/envvars.md
63
- export const ALWAYS_ALLOW_ROBOTS = JSON . parse (
73
+ export const ALWAYS_ALLOW_ROBOTS = parse (
64
74
process . env . BUILD_ALWAYS_ALLOW_ROBOTS || "false"
65
75
) ;
66
76
@@ -123,7 +133,7 @@ function correctContentPathFromEnv(envVarName) {
123
133
// filecheck
124
134
// ---------
125
135
126
- export const MAX_FILE_SIZE = JSON . parse (
136
+ export const MAX_FILE_SIZE = parse (
127
137
process . env . FILECHECK_MAX_FILE_SIZE || 500 * 1024 // 500KiB
128
138
) ;
129
139
@@ -161,7 +171,7 @@ export const PROXY_HOSTNAME =
161
171
export const CONTENT_HOSTNAME = process . env . SERVER_CONTENT_HOST ;
162
172
export const OFFLINE_CONTENT = process . env . SERVER_OFFLINE_CONTENT === "true" ;
163
173
164
- export const FAKE_V1_API = JSON . parse ( process . env . SERVER_FAKE_V1_API || false ) ;
174
+ export const FAKE_V1_API = parse ( process . env . SERVER_FAKE_V1_API || false ) ;
165
175
166
176
// ----
167
177
// tool
0 commit comments