Skip to content

refactor(ev): organize internal build domains - #82

Draft
xusd320 wants to merge 1 commit into
mainfrom
xusd320/refactor-ev-build-domains
Draft

refactor(ev): organize internal build domains#82
xusd320 wants to merge 1 commit into
mainfrom
xusd320/refactor-ev-build-domains

Conversation

@xusd320

@xusd320 xusd320 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Group @evjs/ev internal build modules by capability instead of keeping a flat directory.
  • Preserve the supported @evjs/ev/_internal/build export surface and runtime behavior.

Changes

  • Add focused domains for analysis, conventions, discovery, config loading, development, generated IR, output, plugins, type generation, bundler contracts, and command operations.
  • Turn commands.ts, graph/index.ts, plan/index.ts, and transforms/index.ts into thin façades.
  • Extract graph, plan, and transform contracts into type-only leaf modules and use leaf imports between domain implementations.
  • Update all repository consumers, adapter tests, architecture guidance, and ownership tables to the new paths.
  • Add a package-surface guard for the build-root taxonomy and façade boundaries.

Validation

  • GitHub Actions CI — passed, including build, lint/typecheck, unit, and E2E.
  • npm run check-types — 31/31 tasks passed.
  • npm run lint — 514 files checked.
  • WATCHPACK_POLLING=true npm test -- --env-mode=loose — 17/17 tasks passed, including EV 814 tests, Utoopack 87 tests, and Webpack 86 tests.
  • npm --workspace @evjs/ev test -- tests/build-tools-transforms.test.ts — 43 tests passed.
  • git diff --check.

Risk / rollout

  • No public API, configuration, data, or migration changes.
  • This is rename-heavy and updates repository-owned deep internal imports; unsupported external deep imports to the old physical paths would need to follow the curated internal build barrel.
  • Polling was used for the full local test run because native Watchpack file watching hits the Codex sandbox's file-descriptor limit.

Reviewer notes

  • Focus review on the capability mapping, the config-loader relative runtime paths, and façade export equivalence.
  • Further decomposition of the command implementation by transaction lifecycle can follow separately; this PR establishes the domain boundary without mixing in behavioral changes.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 01ede65c-dc64-42b9-8ccf-7c66385c208b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@xusd320
xusd320 requested a lite review from Copilot and removed request for Copilot August 6, 2026 14:47
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.

1 participant