File tree 2 files changed +16
-13
lines changed
2 files changed +16
-13
lines changed Original file line number Diff line number Diff line change @@ -56,20 +56,23 @@ test("git ignore changes", () => {
56
56
expect ( changesToGitIgnore ( null ) ) . toEqual ( ".env.local\n" ) ;
57
57
expect ( changesToGitIgnore ( "" ) ) . toEqual ( "\n.env.local\n" ) ;
58
58
expect ( changesToGitIgnore ( ".env" ) ) . toEqual ( ".env\n.env.local\n" ) ;
59
+ expect ( changesToGitIgnore ( "# .env.local" ) ) . toEqual (
60
+ "# .env.local\n.env.local\n" ,
61
+ ) ;
59
62
60
63
// Handle existing
61
64
expect ( changesToGitIgnore ( ".env.local" ) ) . toEqual ( null ) ;
62
65
expect ( changesToGitIgnore ( ".env.*" ) ) . toEqual ( null ) ;
63
66
expect ( changesToGitIgnore ( ".env*" ) ) . toEqual ( null ) ;
64
-
65
- // Handle inline comments
66
- expect ( changesToGitIgnore ( ".env.local # convex env" ) ) . toEqual ( null ) ;
67
+ expect ( changesToGitIgnore ( ".env*.local" ) ) . toEqual ( null ) ;
68
+ expect ( changesToGitIgnore ( "*.local" ) ) . toEqual ( null ) ;
69
+ expect ( changesToGitIgnore ( "# convex env\n.env.local " ) ) . toEqual ( null ) ;
67
70
68
71
// Handle Windows
69
72
expect ( changesToGitIgnore ( ".env.local\r" ) ) . toEqual ( null ) ;
70
73
71
74
// Handle whitespace
72
- expect ( changesToGitIgnore ( ".env.local " ) ) . toEqual ( null ) ;
75
+ expect ( changesToGitIgnore ( " .env.local " ) ) . toEqual ( null ) ;
73
76
74
77
// Add .env.local (even if it's negated) to guide the user to solve the problem
75
78
expect ( changesToGitIgnore ( "!.env.local" ) ) . toEqual (
Original file line number Diff line number Diff line change @@ -147,18 +147,18 @@ export function changesToGitIgnore(existingFile: string | null): string | null {
147
147
}
148
148
const gitIgnoreLines = existingFile . split ( "\n" ) ;
149
149
const envVarFileIgnored = gitIgnoreLines . some ( ( line ) => {
150
- // Remove any inline comments
151
- const trimmedLine = line . split ( "#" ) [ 0 ] . trim ( ) ;
150
+ // Remove extra whitespace
151
+ const trimmedLine = line . trim ( ) ;
152
152
153
- // Ignore negated patterns
154
- if ( trimmedLine . startsWith ( "!" ) ) return false ;
153
+ // Ignore negated patterns and comments
154
+ if ( trimmedLine . startsWith ( "!" ) || trimmedLine . startsWith ( "#" ) )
155
+ return false ;
155
156
156
157
const envIgnorePatterns = [
157
- / ^ \. e n v \. l o c a l $ / ,
158
- / ^ \. e n v \. \* $ / ,
159
- / ^ \. e n v \* $ / ,
160
- / ^ .* \. l o c a l $ / ,
161
- / ^ \. e n v \* \. l o c a l $ / ,
158
+ // .env.local, .env.*, .env*
159
+ / ^ \. e n v ( \. l o c a l | \. \* | \* ) $ / ,
160
+ // .env*.local, *.local
161
+ / ^ ( \. e n v ) ? \* \. l o c a l $ / ,
162
162
] ;
163
163
164
164
return envIgnorePatterns . some ( ( pattern ) => pattern . test ( trimmedLine ) ) ;
You can’t perform that action at this time.
0 commit comments