@@ -14,6 +14,7 @@ export interface PackageManager {
14
14
runScriptCommand : string ;
15
15
flags : string ;
16
16
forceInstallFlag : string ;
17
+ registry ?: string ;
17
18
detect : ( ) => boolean ;
18
19
addOverride : ( pkgName : string , pkgVersion : string ) => Promise < void > ;
19
20
}
@@ -27,9 +28,42 @@ export const BUN: PackageManager = {
27
28
flags : '' ,
28
29
forceInstallFlag : '--force' ,
29
30
detect : ( ) =>
30
- [ 'bun.lockb' , 'bun.lock' ] . some ( ( lockFile ) =>
31
- fs . existsSync ( path . join ( process . cwd ( ) , lockFile ) ) ,
32
- ) ,
31
+ [ 'bun.lockb' , 'bun.lock' ] . some ( ( lockFile ) => {
32
+ try {
33
+ return fs . existsSync ( path . join ( process . cwd ( ) , lockFile ) ) ;
34
+ } catch ( e ) {
35
+ return false ;
36
+ }
37
+ } ) ,
38
+ addOverride : async ( pkgName , pkgVersion ) : Promise < void > => {
39
+ const packageDotJson = await getPackageDotJson ( ) ;
40
+ const overrides = packageDotJson . overrides || { } ;
41
+
42
+ await updatePackageDotJson ( {
43
+ ...packageDotJson ,
44
+ overrides : {
45
+ ...overrides ,
46
+ [ pkgName ] : pkgVersion ,
47
+ } ,
48
+ } ) ;
49
+ } ,
50
+ } ;
51
+ export const DENO : PackageManager = {
52
+ name : 'deno' ,
53
+ label : 'Deno' ,
54
+ installCommand : 'install' ,
55
+ buildCommand : 'deno task build' ,
56
+ runScriptCommand : 'deno task' ,
57
+ flags : '' ,
58
+ forceInstallFlag : '--force' ,
59
+ registry : 'npm' ,
60
+ detect : ( ) => {
61
+ try {
62
+ return fs . existsSync ( path . join ( process . cwd ( ) , 'deno.lock' ) ) ;
63
+ } catch ( e ) {
64
+ return false ;
65
+ }
66
+ } ,
33
67
addOverride : async ( pkgName , pkgVersion ) : Promise < void > => {
34
68
const packageDotJson = await getPackageDotJson ( ) ;
35
69
const overrides = packageDotJson . overrides || { } ;
@@ -114,7 +148,13 @@ export const PNPM: PackageManager = {
114
148
runScriptCommand : 'pnpm' ,
115
149
flags : '--ignore-workspace-root-check' ,
116
150
forceInstallFlag : '--force' ,
117
- detect : ( ) => fs . existsSync ( path . join ( process . cwd ( ) , 'pnpm-lock.yaml' ) ) ,
151
+ detect : ( ) => {
152
+ try {
153
+ return fs . existsSync ( path . join ( process . cwd ( ) , 'pnpm-lock.yaml' ) ) ;
154
+ } catch ( e ) {
155
+ return false ;
156
+ }
157
+ } ,
118
158
addOverride : async ( pkgName , pkgVersion ) : Promise < void > => {
119
159
const packageDotJson = await getPackageDotJson ( ) ;
120
160
const pnpm = packageDotJson . pnpm || { } ;
@@ -140,7 +180,13 @@ export const NPM: PackageManager = {
140
180
runScriptCommand : 'npm run' ,
141
181
flags : '' ,
142
182
forceInstallFlag : '--force' ,
143
- detect : ( ) => fs . existsSync ( path . join ( process . cwd ( ) , 'package-lock.json' ) ) ,
183
+ detect : ( ) => {
184
+ try {
185
+ return fs . existsSync ( path . join ( process . cwd ( ) , 'package-lock.json' ) ) ;
186
+ } catch ( e ) {
187
+ return false ;
188
+ }
189
+ } ,
144
190
addOverride : async ( pkgName , pkgVersion ) : Promise < void > => {
145
191
const packageDotJson = await getPackageDotJson ( ) ;
146
192
const overrides = packageDotJson . overrides || { } ;
@@ -155,7 +201,7 @@ export const NPM: PackageManager = {
155
201
} ,
156
202
} ;
157
203
158
- export const packageManagers = [ BUN , YARN_V1 , YARN_V2 , PNPM , NPM ] ;
204
+ export const packageManagers = [ NPM , YARN_V1 , YARN_V2 , PNPM , BUN , DENO ] ;
159
205
160
206
/**
161
207
* Exported only for testing.
0 commit comments