@@ -24,23 +24,76 @@ export function getPackageManager(): PackageManager | undefined {
24
24
return packageManager
25
25
}
26
26
27
- export function packageManagerExecute (
28
- environment : Environment ,
27
+ export function getPackageManagerExecuteCommand (
29
28
packagerManager : PackageManager ,
30
29
pkg : string ,
31
- args : Array < string > ,
32
- cwd : string ,
30
+ args : Array < string > = [ ] ,
33
31
) {
34
32
switch ( packagerManager ) {
35
33
case 'yarn' :
36
- return environment . execute ( 'yarn' , [ 'dlx' , pkg , ...args ] , cwd )
34
+ return { command : 'yarn' , args : [ 'dlx' , pkg , ...args ] }
37
35
case 'pnpm' :
38
- return environment . execute ( 'pnpx' , [ pkg , ...args ] , cwd )
36
+ return { command : 'pnpx' , args : [ pkg , ...args ] }
39
37
case 'bun' :
40
- return environment . execute ( 'bunx' , [ '--bun' , pkg , ...args ] , cwd )
38
+ return { command : 'bunx' , args : [ '--bun' , pkg , ...args ] }
41
39
case 'deno' :
42
- return environment . execute ( 'deno' , [ 'run' , `npm:${ pkg } ` , ...args ] , cwd )
40
+ return { command : 'deno' , args : [ 'run' , `npm:${ pkg } ` , ...args ] }
43
41
default :
44
- return environment . execute ( 'npx' , [ pkg , ...args ] , cwd )
42
+ return { command : 'npx' , args : [ pkg , ...args ] }
45
43
}
46
44
}
45
+
46
+ export function getPackageManagerInstallCommand (
47
+ packagerManager : PackageManager ,
48
+ pkg ?: string ,
49
+ isDev : boolean = false ,
50
+ ) {
51
+ if ( pkg ) {
52
+ switch ( packagerManager ) {
53
+ case 'yarn' :
54
+ case 'pnpm' :
55
+ return {
56
+ command : packagerManager ,
57
+ args : [ 'add' , pkg , isDev ? '--dev' : '' ] ,
58
+ }
59
+ default :
60
+ return {
61
+ command : packagerManager ,
62
+ args : [ 'install' , pkg , isDev ? '-D' : '' ] ,
63
+ }
64
+ }
65
+ } else {
66
+ return {
67
+ command : packagerManager ,
68
+ args : [ 'install' ] ,
69
+ }
70
+ }
71
+ }
72
+
73
+ export function packageManagerInstall (
74
+ environment : Environment ,
75
+ cwd : string ,
76
+ packagerManager : PackageManager ,
77
+ pkg ?: string ,
78
+ ) {
79
+ const { command, args : commandArgs } = getPackageManagerInstallCommand (
80
+ packagerManager ,
81
+ pkg ,
82
+ )
83
+ return environment . execute ( command , commandArgs , cwd )
84
+ }
85
+
86
+ export function packageManagerExecute (
87
+ environment : Environment ,
88
+ cwd : string ,
89
+ packagerManager : PackageManager ,
90
+ pkg : string ,
91
+ args : Array < string > ,
92
+ ) {
93
+ const { command, args : commandArgs } = getPackageManagerExecuteCommand (
94
+ packagerManager ,
95
+ pkg ,
96
+ args ,
97
+ )
98
+ return environment . execute ( command , commandArgs , cwd )
99
+ }
0 commit comments