Skip to content

feat: include devDependencies in build#60

Merged
Ni55aN merged 1 commit into
mainfrom
feature/build-dev-dependencies
Jun 30, 2025
Merged

feat: include devDependencies in build#60
Ni55aN merged 1 commit into
mainfrom
feature/build-dev-dependencies

Conversation

@Ni55aN

@Ni55aN Ni55aN commented Jun 30, 2025

Copy link
Copy Markdown
Member

Description

Related Issues

Checklist

Additional Notes

@Ni55aN Ni55aN requested a review from Copilot June 30, 2025 11:06

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 extends the dependency topology builder to include devDependencies alongside regular and peer dependencies.

  • Added devDependencies field to PackageFile type
  • Updated getDependencyTopo to merge and sort devDependencies
  • Added a test case verifying devDependencies are included in the topology

Reviewed Changes

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

File Description
src/shared/dependency-topo.ts Added devDependencies to type and merged into sorting
src/shared/dependency-topo.test.ts New test to cover inclusion of devDependencies

export function getDependencyTopo<T extends PackageMeta>(list: T[]): (T & Topology)[] {
const packages = Object.fromEntries(list.map(item => {
const { config: { name, dependencies, peerDependencies } } = item
const { config: { name, dependencies, devDependencies, peerDependencies } } = item

Copilot AI Jun 30, 2025

Copy link

Choose a reason for hiding this comment

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

When destructuring optional dependency objects, provide defaults to avoid runtime errors (e.g., dependencies = {}, devDependencies = {}, peerDependencies = {}).

Suggested change
const { config: { name, dependencies, devDependencies, peerDependencies } } = item
const { config: { name, dependencies = {}, devDependencies = {}, peerDependencies = {} } } = item

Copilot uses AI. Check for mistakes.
Comment on lines 14 to 20
const packages = Object.fromEntries(list.map(item => {
const { config: { name, dependencies, peerDependencies } } = item
const { config: { name, dependencies, devDependencies, peerDependencies } } = item

return [name, {
...item,
dependencies: Object.keys({ ...dependencies, ...peerDependencies })
dependencies: Object.keys({ ...dependencies, ...devDependencies, ...peerDependencies })
.filter(dependencyName => list.map(({ config }) => config.name).includes(dependencyName))

Copilot AI Jun 30, 2025

Copy link

Choose a reason for hiding this comment

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

[nitpick] Avoid rebuilding the package name list on every filter iteration; precompute a Set of valid package names before mapping to achieve O(1) lookups.

Copilot uses AI. Check for mistakes.
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
6.5% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@Ni55aN Ni55aN merged commit a59bca8 into main Jun 30, 2025
2 of 3 checks passed
@rete-js

rete-js Bot commented Jun 30, 2025

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.13.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@rete-js rete-js Bot added the released label Jun 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants