feat: Add package manager guard as the orchestrator

This commit is contained in:
abhisek
2025-05-14 11:31:35 +05:30
parent 01f2fff82f
commit 96842cfcf2
7 changed files with 138 additions and 81 deletions
+43
View File
@@ -0,0 +1,43 @@
package npm
import (
"context"
"fmt"
"github.com/safedep/pmg/analyzer"
"github.com/safedep/pmg/guard"
"github.com/safedep/pmg/packagemanager"
)
func executeCommonFlow(pm packagemanager.PackageManager, args []string) error {
packageResolver, err := packagemanager.NewNpmDependencyResolver(packagemanager.NewDefaultNpmDependencyResolverConfig())
if err != nil {
return fmt.Errorf("failed to create npm dependency resolver: %w", err)
}
proxy, err := guard.NewPackageManagerGuard(guard.PackageManagerGuardConfig{},
pm, packageResolver, []analyzer.Analyzer{})
if err != nil {
return fmt.Errorf("failed to create package manager guard: %w", err)
}
return proxy.Run(context.Background(), args)
}
func executeNpmFlow(args []string) error {
packageManager, err := packagemanager.NewNpmPackageManager(packagemanager.DefaultNpmPackageManagerConfig())
if err != nil {
return fmt.Errorf("failed to create npm package manager: %w", err)
}
return executeCommonFlow(packageManager, args)
}
func executePnpmFlow(args []string) error {
packageManager, err := packagemanager.NewNpmPackageManager(packagemanager.DefaultPnpmPackageManagerConfig())
if err != nil {
return fmt.Errorf("failed to create pnpm package manager: %w", err)
}
return executeCommonFlow(packageManager, args)
}