@@ -281,40 +281,44 @@ export function envVarDirective(
281
281
name = resolved ;
282
282
}
283
283
284
- let resolvedValue = process . env [ name ] ;
285
-
286
- if ( ! resolvedValue && name === 'APP_CONFIG_ENV' ) {
287
- resolvedValue = envType ;
288
- }
289
-
290
- if ( resolvedValue ) {
284
+ const parseValue = ( value : string ) => {
291
285
if ( parseInt ) {
292
- const parsed = Number . parseInt ( resolvedValue , 10 ) ;
286
+ const parsed = Number . parseInt ( value , 10 ) ;
293
287
294
288
if ( Number . isNaN ( parsed ) ) {
295
- throw new AppConfigError ( `Failed to parseInt(${ resolvedValue } )` ) ;
289
+ throw new AppConfigError ( `Failed to parseInt(${ value } )` ) ;
296
290
}
297
291
298
292
return parse ( parsed , { shouldFlatten : true } ) ;
299
293
}
300
294
301
295
if ( parseFloat ) {
302
- const parsed = Number . parseFloat ( resolvedValue ) ;
296
+ const parsed = Number . parseFloat ( value ) ;
303
297
304
298
if ( Number . isNaN ( parsed ) ) {
305
- throw new AppConfigError ( `Failed to parseFloat(${ resolvedValue } )` ) ;
299
+ throw new AppConfigError ( `Failed to parseFloat(${ value } )` ) ;
306
300
}
307
301
308
302
return parse ( parsed , { shouldFlatten : true } ) ;
309
303
}
310
304
311
305
if ( parseBool ) {
312
- const parsed = resolvedValue . toLowerCase ( ) !== 'false' && resolvedValue !== '0' ;
306
+ const parsed = value . toLowerCase ( ) !== 'false' && value !== '0' ;
313
307
314
308
return parse ( parsed , { shouldFlatten : true } ) ;
315
309
}
316
310
317
- return parse ( resolvedValue , { shouldFlatten : true } ) ;
311
+ return parse ( value , { shouldFlatten : true } ) ;
312
+ } ;
313
+
314
+ let resolvedValue = process . env [ name ] ;
315
+
316
+ if ( ! resolvedValue && name === 'APP_CONFIG_ENV' ) {
317
+ resolvedValue = envType ;
318
+ }
319
+
320
+ if ( resolvedValue ) {
321
+ return parseValue ( resolvedValue ) ;
318
322
}
319
323
320
324
if ( typeof value === 'object' && value . fallback !== undefined ) {
@@ -327,7 +331,7 @@ export function envVarDirective(
327
331
validateString ( fallback , [ ...ctx , key , [ InObject , 'fallback' ] ] ) ;
328
332
}
329
333
330
- return parse ( fallback , { shouldFlatten : true } ) ;
334
+ return parseValue ( fallback ) ;
331
335
}
332
336
333
337
throw new AppConfigError ( `$envVar could not find ${ name } environment variable` ) ;
0 commit comments