Class PackageJsonOverrides

java.lang.Object
org.openrewrite.javascript.internal.PackageJsonOverrides

public final class PackageJsonOverrides extends Object
Ports parseDependencyPath and applyOverrideToPackageJson from dependency-manager.ts.
  • Method Details

    • parsePath

      public static List<DependencyPathSegment> parsePath(String path)
      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 a package.json document, 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).