Skip to content

refactor(@schematics/angular): add getDependency and removeDependency utilities #30883

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Aug 12, 2025

Conversation

clydin
Copy link
Member

@clydin clydin commented Aug 12, 2025

Adds two new utility functions to the schematics dependency helper library:

  • getDependency: Allows a schematic to query a package.json and check for the existence of a dependency, returning its version and type if found.
  • removeDependency: Provides a schematic rule to safely remove a dependency from any of the dependency sections in a package.json.

Refactors several schematics (application, library, service-worker, and two migrations) to use the new, centralized dependency management utilities (addDependency, removeDependency, getDependency).

@clydin clydin added the target: minor This PR is targeted for the next minor release label Aug 12, 2025
clydin added 3 commits August 12, 2025 10:29
… utilities

Adds two new utility functions to the schematics dependency helper library:

- getDependency: Allows a schematic to query a package.json and check for the existence of a dependency, returning its version and type if found.

- removeDependency: Provides a schematic rule to safely remove a dependency from any of the dependency sections in a package.json.
Refactors several schematics (`application`, `library`, `service-worker`, and two migrations) to use the new, centralized dependency management utilities (`addDependency`, `removeDependency`, `getDependency`).

This change migrates away from the older, class-based `dependencies.ts` helper and consolidates all dependency logic on the more robust, functional `dependency.ts` utility. This improves consistency and leverages the enhanced features of the new utilities, such as automatic and configurable installation task management.
…arative

Moves the dependency information for the `application` and `library` schematics to module-level constants. This makes the `addDependenciesToPackageJson` functions in both schematics more declarative and easier to read and maintain.
@clydin clydin force-pushed the schematics/dependency-helpers branch from fd108f9 to 9f0dd34 Compare August 12, 2025 14:29
@clydin clydin added the action: review The PR is still awaiting reviews from at least one requested reviewer label Aug 12, 2025
@clydin clydin requested a review from alan-agius4 August 12, 2025 15:05
@alan-agius4 alan-agius4 added action: merge The PR is ready for merge by the caretaker and removed action: review The PR is still awaiting reviews from at least one requested reviewer labels Aug 12, 2025
@alan-agius4 alan-agius4 merged commit 9723844 into angular:main Aug 12, 2025
30 of 31 checks passed
@clydin clydin deleted the schematics/dependency-helpers branch August 12, 2025 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
action: merge The PR is ready for merge by the caretaker area: @schematics/angular target: minor This PR is targeted for the next minor release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants