@@ -15,15 +15,16 @@ const chosenPM = process.argv[2];
15
15
16
16
if ( lockFiles . hasOwnProperty ( chosenPM ) ) {
17
17
const allowedLock = lockFiles [ chosenPM as keyof typeof lockFiles ] ;
18
-
19
18
const forbiddenLocks = Object . values ( lockFiles ) . filter ( ( lock ) => lock !== allowedLock ) ;
20
-
21
19
const stagedFiles = git ( [ 'diff' , '--name-only' , '--cached' ] ) . stdout . trim ( ) . split ( '\n' ) ;
22
20
23
21
for ( let lock of forbiddenLocks ) {
24
- if ( stagedFiles . indexOf ( lock ) !== - 1 ) {
25
- // Remove the forbidden lock file
26
- git ( [ 'rm' , '-f' , lock ] ) ;
22
+ // Array of all the staged lock files for a given forbidden package manager.
23
+ const forbiddenLocksFound = stagedFiles . filter ( ( sf ) => sf . endsWith ( lock ) ) ;
24
+
25
+ if ( forbiddenLocksFound . length ) {
26
+ // Remove the forbidden lock files
27
+ for ( const flf of forbiddenLocksFound ) git ( [ 'rm' , '-f' , flf ] ) ;
27
28
28
29
// Notify
29
30
const yellow = '\x1b[1;33m' ;
@@ -32,7 +33,7 @@ if (lockFiles.hasOwnProperty(chosenPM)) {
32
33
const resetColor = '\x1b[0m' ;
33
34
const forbiddenPMUsed = Object . keys ( lockFiles ) . find ( ( pm ) => lockFiles [ pm as keyof typeof lockFiles ] === lock ) ;
34
35
console . log ( yellow , `WARNING: It looks like you used ${ forbiddenPMUsed } . Please remember to use ${ chosenPM } .` ) ;
35
- console . log ( green , `"${ lock } " has been deleted prior to commit.` ) ;
36
+ for ( const flf of forbiddenLocksFound ) console . log ( green , `"${ flf } " has been deleted prior to commit.` ) ;
36
37
console . log ( blue , '\t\t~ enforcepm ~' , resetColor ) ;
37
38
}
38
39
}
0 commit comments