Class PackageJsonOverrides
java.lang.Object
org.openrewrite.javascript.internal.PackageJsonOverrides
Ports
parseDependencyPath and applyOverrideToPackageJson
from dependency-manager.ts.-
Method Summary
Modifier and TypeMethodDescriptionstatic org.openrewrite.json.tree.Json.DocumentapplyOverride(org.openrewrite.json.tree.Json.Document doc, NodeResolutionResult.PackageManager pm, String packageName, String newVersion, @Nullable List<DependencyPathSegment> path) Applies a transitive-dependency override to apackage.jsondocument, dispatching on the package manager dialect.static List<DependencyPathSegment> Parses a dependency path string into segments.
-
Method Details
-
parsePath
Parses a dependency path string into segments. Accepts both>(pnpm style) and/(yarn style) as separators. Scoped packages (@scope/pkg) are kept as a single segment.Examples:
"express>accepts"→ [{name:"express"}, {name:"accepts"}]"[email protected]>accepts"→ [{name:"express", version:"4.0.0"}, {name:"accepts"}]"@scope/pkg>dep"→ [{name:"@scope/pkg"}, {name:"dep"}]
-
applyOverride
public static org.openrewrite.json.tree.Json.Document applyOverride(org.openrewrite.json.tree.Json.Document doc, NodeResolutionResult.PackageManager pm, String packageName, String newVersion, @Nullable List<DependencyPathSegment> path) Applies a transitive-dependency override to apackage.jsondocument, dispatching on the package manager dialect.For the no-path (global) case, formatting is preserved via
PackageJsonHelper's mutation helpers. For deep-nested paths the document is re-serialised and re-parsed (acceptable per spec).
-