@@ -69,6 +69,10 @@ const getOverridesDataByAgent: Record<Agent, GetOverrides> = {
69
69
const overrides = ( pkgJson as any ) ?. pnpm ?. overrides ?? { }
70
70
return { type : 'pnpm' , overrides }
71
71
} ,
72
+ vlt ( pkgJson : PackageJsonContent ) {
73
+ const overrides = ( pkgJson as any ) ?. overrides ?? { }
74
+ return { type : 'vlt' , overrides }
75
+ } ,
72
76
// Yarn resolutions documentation:
73
77
// https://yarnpkg.com/configuration/manifest#resolutions
74
78
'yarn/berry' ( pkgJson : PackageJsonContent ) {
@@ -117,6 +121,11 @@ const lockIncludesByAgent: Record<Agent, AgentLockIncludesFn> = (() => {
117
121
'm'
118
122
) . test ( lockSrc )
119
123
} ,
124
+ vlt ( lockSrc : string , name : string ) {
125
+ // Detects the package name in the following cases:
126
+ // "name"
127
+ return lockSrc . includes ( `"${ name } "` )
128
+ } ,
120
129
'yarn/berry' : yarn ,
121
130
'yarn/classic' : yarn
122
131
}
@@ -127,36 +136,36 @@ type AgentModifyManifestFn = (
127
136
overrides : Overrides
128
137
) => void
129
138
130
- const updateManifestByAgent : Record < Agent , AgentModifyManifestFn > = {
131
- bun ( pkgJson : EditablePackageJson , overrides : Overrides ) {
132
- pkgJson . update ( {
133
- [ RESOLUTIONS_FIELD_NAME ] : < PnpmOrYarnOverrides > overrides
134
- } )
135
- } ,
136
- npm ( pkgJson : EditablePackageJson , overrides : Overrides ) {
139
+ const updateManifestByAgent : Record < Agent , AgentModifyManifestFn > = ( ( ) => {
140
+ function updateOverrides ( pkgJson : EditablePackageJson , overrides : Overrides ) {
137
141
pkgJson . update ( {
138
142
[ OVERRIDES_FIELD_NAME ] : overrides
139
143
} )
140
- } ,
141
- pnpm ( pkgJson : EditablePackageJson , overrides : Overrides ) {
142
- pkgJson . update ( {
143
- pnpm : {
144
- ...( < object > pkgJson . content [ 'pnpm' ] ) ,
145
- [ OVERRIDES_FIELD_NAME ] : overrides
146
- }
147
- } )
148
- } ,
149
- 'yarn/berry' ( pkgJson : EditablePackageJson , overrides : Overrides ) {
150
- pkgJson . update ( {
151
- [ RESOLUTIONS_FIELD_NAME ] : < PnpmOrYarnOverrides > overrides
152
- } )
153
- } ,
154
- 'yarn/classic' ( pkgJson : EditablePackageJson , overrides : Overrides ) {
144
+ }
145
+ function updateResolutions (
146
+ pkgJson : EditablePackageJson ,
147
+ overrides : Overrides
148
+ ) {
155
149
pkgJson . update ( {
156
150
[ RESOLUTIONS_FIELD_NAME ] : < PnpmOrYarnOverrides > overrides
157
151
} )
158
152
}
159
- }
153
+ return {
154
+ bun : updateResolutions ,
155
+ npm : updateOverrides ,
156
+ pnpm ( pkgJson : EditablePackageJson , overrides : Overrides ) {
157
+ pkgJson . update ( {
158
+ pnpm : {
159
+ ...( < object > pkgJson . content [ 'pnpm' ] ) ,
160
+ [ OVERRIDES_FIELD_NAME ] : overrides
161
+ }
162
+ } )
163
+ } ,
164
+ vlt : updateOverrides ,
165
+ 'yarn/berry' : updateResolutions ,
166
+ 'yarn/classic' : updateResolutions
167
+ }
168
+ } ) ( )
160
169
161
170
type AgentListDepsOptions = {
162
171
npmExecPath ?: string
@@ -251,6 +260,16 @@ const lsByAgent = (() => {
251
260
}
252
261
return stdout
253
262
} ,
263
+ async vlt ( agentExecPath : string , cwd : string ) {
264
+ try {
265
+ return (
266
+ await spawn ( agentExecPath ! , [ 'ls' , '--view' , 'human' , ':not(.dev)' ] , {
267
+ cwd
268
+ } )
269
+ ) . stdout
270
+ } catch { }
271
+ return ''
272
+ } ,
254
273
async 'yarn/berry' ( agentExecPath : string , cwd : string ) {
255
274
try {
256
275
return (
@@ -286,6 +305,7 @@ const depsIncludesByAgent: Record<Agent, AgentDepsIncludesFn> = {
286
305
bun : ( stdout : string , name : string ) => stdout . includes ( ` ${ name } @` ) ,
287
306
npm : ( stdout : string , name : string ) => stdout . includes ( `/${ name } \n` ) ,
288
307
pnpm : ( stdout : string , name : string ) => stdout . includes ( `/${ name } \n` ) ,
308
+ vlt : ( stdout : string , name : string ) => stdout . includes ( ` ${ name } @` ) ,
289
309
'yarn/berry' : ( stdout : string , name : string ) => stdout . includes ( ` ${ name } @` ) ,
290
310
'yarn/classic' : ( stdout : string , name : string ) => stdout . includes ( ` ${ name } @` )
291
311
}
@@ -663,6 +683,12 @@ export const optimize: CliSubcommand = {
663
683
)
664
684
return
665
685
}
686
+ if ( agent === 'vlt' ) {
687
+ console . log (
688
+ `✘ ${ COMMAND_TITLE } : ${ agent } does not support overrides. Soon, though ⚡`
689
+ )
690
+ return
691
+ }
666
692
const lockName = lockPath ? path . basename ( lockPath ) : 'lock file'
667
693
if ( lockSrc === undefined ) {
668
694
console . log ( `✘ ${ COMMAND_TITLE } : No ${ lockName } found` )
0 commit comments