feat: Introduce global config primitive

This commit is contained in:
abhisek
2025-05-14 16:09:29 +05:30
parent 86a0a8f5a4
commit 8896917c4d
6 changed files with 69 additions and 11 deletions
+12 -7
View File
@@ -5,13 +5,18 @@ import (
"fmt"
"github.com/safedep/pmg/analyzer"
"github.com/safedep/pmg/config"
"github.com/safedep/pmg/guard"
"github.com/safedep/pmg/internal/ui"
"github.com/safedep/pmg/packagemanager"
)
func executeCommonFlow(pm packagemanager.PackageManager, args []string) error {
packageResolver, err := packagemanager.NewNpmDependencyResolver(packagemanager.NewDefaultNpmDependencyResolverConfig())
func executeCommonFlow(ctx context.Context, config config.Config, pm packagemanager.PackageManager, args []string) error {
packageResolverConfig := packagemanager.NewDefaultNpmDependencyResolverConfig()
packageResolverConfig.IncludeTransitiveDependencies = config.Transitive
packageResolverConfig.TransitiveDepth = config.TransitiveDepth
packageResolver, err := packagemanager.NewNpmDependencyResolver(packageResolverConfig)
if err != nil {
return fmt.Errorf("failed to create npm dependency resolver: %w", err)
}
@@ -34,23 +39,23 @@ func executeCommonFlow(pm packagemanager.PackageManager, args []string) error {
return fmt.Errorf("failed to create package manager guard: %w", err)
}
return proxy.Run(context.Background(), args)
return proxy.Run(ctx, args)
}
func executeNpmFlow(args []string) error {
func executeNpmFlow(ctx context.Context, config config.Config, 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)
return executeCommonFlow(ctx, config, packageManager, args)
}
func executePnpmFlow(args []string) error {
func executePnpmFlow(ctx context.Context, config config.Config, 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)
return executeCommonFlow(ctx, config, packageManager, args)
}
+8 -1
View File
@@ -2,7 +2,9 @@ package npm
import (
_ "embed"
"fmt"
"github.com/safedep/pmg/config"
"github.com/spf13/cobra"
)
@@ -12,7 +14,12 @@ func NewNpmCommand() *cobra.Command {
Short: "Guard npm package manager",
DisableFlagParsing: true,
RunE: func(cmd *cobra.Command, args []string) error {
return executeNpmFlow(args)
config, err := config.FromContext(cmd.Context())
if err != nil {
return fmt.Errorf("failed to get config: %w", err)
}
return executeNpmFlow(cmd.Context(), config, args)
},
}
}
+8 -1
View File
@@ -2,7 +2,9 @@ package npm
import (
_ "embed"
"fmt"
"github.com/safedep/pmg/config"
"github.com/spf13/cobra"
)
@@ -12,7 +14,12 @@ func NewPnpmCommand() *cobra.Command {
Short: "Guard pnpm package manager",
DisableFlagParsing: true,
RunE: func(cmd *cobra.Command, args []string) error {
return executePnpmFlow(args)
config, err := config.FromContext(cmd.Context())
if err != nil {
return fmt.Errorf("failed to get config: %w", err)
}
return executePnpmFlow(cmd.Context(), config, args)
},
}
}