@@ -5,6 +5,28 @@ var pathResolve = require('path').resolve;
5
5
6
6
var dotenvContent ;
7
7
8
+ function loadDotenvContent ( opts ) {
9
+ var dotenvPath = pathResolve ( process . cwd ( ) , '.env' )
10
+ var encoding = 'utf8'
11
+ var debug = false
12
+ if ( opts . path != null ) {
13
+ dotenvPath = opts . path
14
+ }
15
+ if ( opts . encoding != null ) {
16
+ encoding = opts . encoding
17
+ }
18
+ if ( opts . debug != null ) {
19
+ debug = true
20
+ }
21
+ var fileContent ;
22
+ try { fileContent = fs . readFileSync ( dotenvPath , { encoding :encoding } ) } catch ( e ) { } ;
23
+ dotenvContent = fileContent ? require ( 'dotenv' ) . parse ( fileContent , { debug :debug } ) : { } ;
24
+ var dotenvExpand ;
25
+ try { dotenvExpand = require ( 'dotenv-expand' ) ; } catch ( e ) { }
26
+ if ( dotenvExpand )
27
+ dotenvContent = dotenvExpand ( { parsed :dotenvContent , ignoreProcessEnv :true } ) . parsed ;
28
+ }
29
+
8
30
function getValue ( dotenvContent , systemContent , opts , name ) {
9
31
if ( opts . env && name in opts . env ) return opts . env [ name ] ;
10
32
@@ -34,23 +56,7 @@ module.exports = function (options) {
34
56
if ( t . isAssignmentExpression ( path . parent ) && path . parent . left == path . node ) return ;
35
57
if ( path . get ( "object" ) . matchesPattern ( "process.env" ) ) {
36
58
if ( ! dotenvContent ) {
37
- var dotenvPath = pathResolve ( process . cwd ( ) , '.env' )
38
- var encoding = 'utf8'
39
- var debug = false
40
- if ( state . opts . path != null ) {
41
- dotenvPath = state . opts . path
42
- }
43
- if ( state . opts . encoding != null ) {
44
- encoding = state . opts . encoding
45
- }
46
- if ( state . opts . debug != null ) {
47
- debug = true
48
- }
49
- dotenvContent = require ( 'dotenv' ) . parse ( fs . readFileSync ( dotenvPath , { encoding :encoding } ) , { debug :debug } ) ;
50
- var dotenvExpand ;
51
- try { dotenvExpand = require ( 'dotenv-expand' ) ; } catch ( e ) { }
52
- if ( dotenvExpand )
53
- dotenvContent = dotenvExpand ( { parsed :dotenvContent , ignoreProcessEnv :true } ) . parsed ;
59
+ loadDotenvContent ( state . opts ) ;
54
60
}
55
61
var key = path . toComputedKey ( ) ;
56
62
if ( t . isStringLiteral ( key ) ) {
0 commit comments