@@ -24,23 +24,76 @@ export function getPackageManager(): PackageManager | undefined {
2424 return packageManager
2525}
2626
27- export function packageManagerExecute (
28- environment : Environment ,
27+ export function getPackageManagerExecuteCommand (
2928 packagerManager : PackageManager ,
3029 pkg : string ,
31- args : Array < string > ,
32- cwd : string ,
30+ args : Array < string > = [ ] ,
3331) {
3432 switch ( packagerManager ) {
3533 case 'yarn' :
36- return environment . execute ( 'yarn' , [ 'dlx' , pkg , ...args ] , cwd )
34+ return { command : 'yarn' , args : [ 'dlx' , pkg , ...args ] }
3735 case 'pnpm' :
38- return environment . execute ( 'pnpx' , [ pkg , ...args ] , cwd )
36+ return { command : 'pnpx' , args : [ pkg , ...args ] }
3937 case 'bun' :
40- return environment . execute ( 'bunx' , [ '--bun' , pkg , ...args ] , cwd )
38+ return { command : 'bunx' , args : [ '--bun' , pkg , ...args ] }
4139 case 'deno' :
42- return environment . execute ( 'deno' , [ 'run' , `npm:${ pkg } ` , ...args ] , cwd )
40+ return { command : 'deno' , args : [ 'run' , `npm:${ pkg } ` , ...args ] }
4341 default :
44- return environment . execute ( 'npx' , [ pkg , ...args ] , cwd )
42+ return { command : 'npx' , args : [ pkg , ...args ] }
4543 }
4644}
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