@@ -113,16 +113,17 @@ async function detectPackageManager(): Promise<string> {
113
113
if ( checkLockFile ( "yarn.lock" ) ) return "yarn" ;
114
114
if ( checkLockFile ( "package-lock.json" ) ) return "npm" ;
115
115
116
- return await p . select ( {
116
+ return ( await p . select ( {
117
117
message : "We couldn't detect your package manager. Please choose one:" ,
118
118
options : [
119
119
{ value : "npm" , label : "npm" } ,
120
120
{ value : "yarn" , label : "Yarn" } ,
121
121
{ value : "pnpm" , label : "pnpm" } ,
122
122
{ value : "bun" , label : "Bun" } ,
123
123
] ,
124
- } ) ;
124
+ } ) ) as string ;
125
125
}
126
+ type PackageManager = "bun" | "pnpm" | "yarn" | "npm" ;
126
127
127
128
async function installPackages ( packageManager : string , packages : Set < string > ) {
128
129
const installCommands = {
@@ -132,7 +133,7 @@ async function installPackages(packageManager: string, packages: Set<string>) {
132
133
npm : "npm install" ,
133
134
} ;
134
135
135
- const installCommand = installCommands [ packageManager ] ;
136
+ const installCommand = installCommands [ packageManager as PackageManager ] ;
136
137
137
138
const spinner = p . spinner ( ) ;
138
139
spinner . start ( `Installing packages using ${ packageManager } ` ) ;
@@ -149,7 +150,9 @@ async function installPackages(packageManager: string, packages: Set<string>) {
149
150
} ) ;
150
151
spinner . stop ( `Packages installed successfully using ${ packageManager } ` ) ;
151
152
} catch ( error ) {
152
- spinner . stop ( `Failed to install packages: ${ error . message } ` ) ;
153
+ if ( error instanceof Error ) {
154
+ spinner . stop ( `Failed to install packages: ${ error . message } ` ) ;
155
+ }
153
156
throw error ;
154
157
}
155
158
}
0 commit comments