@@ -3,7 +3,7 @@ import { promisify } from 'util'
3
3
4
4
const execPromise = promisify ( exec )
5
5
6
- export const PACKAGE_MANAGER_TYPES = [ 'pnpm' , 'yarn' , 'npm' ] as const
6
+ export const PACKAGE_MANAGER_TYPES = [ 'pnpm' , 'bun' , ' yarn', 'npm' ] as const
7
7
8
8
export type PackageManagerType = ( typeof PACKAGE_MANAGER_TYPES ) [ number ]
9
9
@@ -30,6 +30,10 @@ export async function selectPackageManager(): Promise<PackageManager> {
30
30
return createPnpm ( )
31
31
}
32
32
33
+ if ( await isPackageManagerAvailable ( 'bun' ) ) {
34
+ return createRunner ( { type : 'bun' } )
35
+ }
36
+
33
37
if ( await isPackageManagerAvailable ( 'npm' ) ) {
34
38
return createNpm ( )
35
39
}
@@ -45,6 +49,7 @@ export async function selectPackageManager(): Promise<PackageManager> {
45
49
46
50
export function getPackageManager ( type : PackageManagerType ) {
47
51
if ( type === 'pnpm' ) return createPnpm ( )
52
+ if ( type === 'bun' ) return createBun ( )
48
53
if ( type === 'yarn' ) return createYarn ( )
49
54
if ( type === 'npm' ) return createNpm ( )
50
55
throw new Error ( `Unknown package manager ${ type as string } .` )
@@ -62,6 +67,10 @@ function createNpm(): PackageManager {
62
67
return createRunner ( { type : 'npm' , installArgs : [ '--legacy-peer-deps' ] } )
63
68
}
64
69
70
+ function createBun ( ) : PackageManager {
71
+ return createRunner ( { type : 'bun' } )
72
+ }
73
+
65
74
function createRunner ( {
66
75
type,
67
76
installArgs,
0 commit comments