Skip to content

Commit 6b74979

Browse files
committed
feat: locked dependencies filtering
1 parent eb2e372 commit 6b74979

File tree

1 file changed

+19
-26
lines changed

1 file changed

+19
-26
lines changed

pkg/updater/root.go

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ func readDependencies(
237237
isDev bool,
238238
bar *progressbar.ProgressBar,
239239
filter string,
240-
) {
240+
) (lockedDependencyCount int) {
241241

242242
var wg sync.WaitGroup
243243
semaphoreChan := make(chan struct{}, concurrencyLimit)
@@ -265,6 +265,12 @@ func readDependencies(
265265
continue
266266
}
267267

268+
if versionPrefix == "" {
269+
fmt.Printf(" is locked to version %s, skipping...", cleanCurrentVersion)
270+
lockedDependencyCount++
271+
continue
272+
}
273+
268274
wg.Add(1)
269275

270276
go func(dependency string, currentVersion string) {
@@ -343,7 +349,7 @@ func readDependencies(
343349
// Wait for all goroutines to complete
344350
wg.Wait()
345351
close(doneChan)
346-
352+
return lockedDependencyCount
347353
}
348354

349355
func Init(cfg npm.CmdFlags) {
@@ -367,11 +373,14 @@ func Init(cfg npm.CmdFlags) {
367373
bar := initProgressBar(totalDependencyCount)
368374

369375
// Process dependencies
370-
readDependencies(dependencies, versionComparison, false, bar, cfg.Filter)
376+
var lockedDependencyCount int
377+
var lockedDevDependencyCount int
378+
379+
lockedDependencyCount = readDependencies(dependencies, versionComparison, false, bar, cfg.Filter)
371380

372381
// Process devDependencies
373382
if !cfg.NoDev {
374-
readDependencies(devDependencies, versionComparison, true, bar, cfg.Filter)
383+
lockedDevDependencyCount = readDependencies(devDependencies, versionComparison, true, bar, cfg.Filter)
375384
}
376385

377386
// Count total dependencies and filtered dependencies
@@ -401,6 +410,12 @@ func Init(cfg npm.CmdFlags) {
401410
fmt.Println("Filtered", aurora.Blue(filteredDependencyCount), "dependencies from a total of", aurora.Blue(totalDependencyCount))
402411
} else {
403412
fmt.Println("Total dependencies: ", aurora.Cyan(filteredDependencyCount))
413+
414+
totalLockedDependencyCount := lockedDependencyCount + lockedDevDependencyCount
415+
if totalLockedDependencyCount > 0 {
416+
s := fmt.Sprintf("Locked dependencies: %d", totalLockedDependencyCount)
417+
fmt.Println(aurora.Faint(s))
418+
}
404419
}
405420

406421
printSummary(totalCount, majorCount, minorCount, patchCount)
@@ -422,28 +437,6 @@ func Init(cfg npm.CmdFlags) {
422437

423438
for {
424439

425-
if value.VersionPrefix == "" {
426-
isDevDependencyText := ""
427-
if value.IsDev {
428-
isDevDependencyText = aurora.Sprintf(
429-
aurora.Magenta(" (devDependency)"),
430-
)
431-
}
432-
433-
message := aurora.Sprintf(
434-
aurora.Yellow("Upgrade ignored because package \"%s\"%s is locked to version %s"),
435-
key,
436-
isDevDependencyText,
437-
value.Current,
438-
)
439-
440-
fmt.Println(message)
441-
442-
updateProgressCount++
443-
break
444-
445-
}
446-
447440
response := cli.PromptUpdateDependency(
448441
key,
449442
value.Current,

0 commit comments

Comments
 (0)