Skip to content

refactor(tree-walker): re-abstract tree loading#566

Merged
fraxken merged 1 commit into
masterfrom
tree-walker-virtual-tree
Nov 30, 2025
Merged

refactor(tree-walker): re-abstract tree loading#566
fraxken merged 1 commit into
masterfrom
tree-walker-virtual-tree

Conversation

@fraxken

@fraxken fraxken commented Nov 29, 2025

Copy link
Copy Markdown
Member

No description provided.

@changeset-bot

changeset-bot Bot commented Nov 29, 2025

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 0e844a4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@nodesecure/tree-walker Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors tree loading logic by introducing a TreeDependencies class to encapsulate dependency filtering and transformation. The main change abstracts the complexity of filtering Arborist nodes based on dev dependencies and workspace settings away from the walker implementation.

  • Introduces TreeDependencies class to handle dependency filtering from Arborist nodes
  • Updates LocalDependencyTreeLoader to return TreeDependencies instead of raw Arborist.Node
  • Adds comprehensive tests for LocalDependencyTreeLoader

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
workspaces/tree-walker/src/npm/TreeDependencies.ts New class that encapsulates logic for filtering and transforming Arborist node edges into a Map of dependencies
workspaces/tree-walker/src/npm/LocalDependencyTreeLoader.ts Updated to return TreeDependencies instead of Arborist.Node, with options now bundled into a single object
workspaces/tree-walker/src/npm/walker.ts Refactored to use TreeDependencies API, simplifying the dependency iteration logic
workspaces/tree-walker/test/npm/LocalDependencyTreeLoader.spec.ts New test file covering both virtual and actual tree loading scenarios
workspaces/tree-walker/test/fixtures/tree-loader-virtual/package.json Test fixture for tree loading tests
workspaces/tree-walker/test/fixtures/tree-loader-virtual/package-lock.json Lock file fixture for virtual tree loading test
.changeset/yummy-knives-grab.md Changeset documenting this as a minor version change
Files not reviewed (1)
  • workspaces/tree-walker/test/fixtures/tree-loader-virtual/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread workspaces/tree-walker/test/fixtures/tree-loader-virtual/package-lock.json Outdated
Comment thread workspaces/tree-walker/test/npm/LocalDependencyTreeLoader.spec.ts
@fraxken fraxken force-pushed the tree-walker-virtual-tree branch from 0ff4671 to 0e844a4 Compare November 29, 2025 17:33
@fraxken fraxken merged commit d280c39 into master Nov 30, 2025
5 checks passed
@fraxken fraxken deleted the tree-walker-virtual-tree branch November 30, 2025 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants