refactor(rust): remove ModuleId#resource_id and use as_arc_str directly#7710
Conversation
There was a problem hiding this comment.
Pull request overview
This PR simplifies the ModuleId API by removing the resource_id abstraction layer. The changes rename the internal field from resource_id to inner and remove the resource_id() method, with all call sites updated to use as_arc_str() directly. This refactoring aligns with the plan to reconsider the resource_id abstraction only when working on import attributes support.
Key Changes
- Renamed
ModuleId::resource_idfield toinnerfor simplicity - Removed
ModuleId::resource_id()accessor method - Updated all call sites across the codebase to use
as_arc_str()instead
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| crates/rolldown_common/src/types/module_id.rs | Core change: renamed field and removed resource_id() method, updated all internal method implementations |
| crates/rolldown_plugin_vite_html/src/lib.rs | Updated facade_module_id comparison to use as_arc_str() |
| crates/rolldown_plugin_vite_css_post/src/utils.rs | Updated CSS request check to use as_arc_str() |
| crates/rolldown_plugin_vite_css_post/src/lib.rs | Updated module_id access for CSS processing to use as_arc_str() |
| crates/rolldown_plugin_chunk_import_map/src/lib.rs | Updated hashing logic to use as_arc_str() |
| crates/rolldown_plugin/src/plugin_driver/mod.rs | Updated module info insertion to use as_arc_str() |
| crates/rolldown/src/types/scan_stage_cache.rs | Updated module path indexing to use as_arc_str() |
| crates/rolldown/src/stages/link_stage/bind_imports_and_exports.rs | Updated diagnostic creation to use as_arc_str() |
| crates/rolldown/src/ast_scanner/namespace_call_analyzer.rs | Updated diagnostic creation to use as_arc_str() |
| crates/rolldown/src/ast_scanner/import_assign_analyzer.rs | Updated diagnostic creation to use as_arc_str() |
| crates/rolldown/src/ast_scanner/impl_visit.rs | Updated resource id parsing to use as_arc_str() |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Addressed all review comments:
|
Benchmarks Rust
|
Merge activity
|
d13972d to
a970fe1
Compare
12bc698 to
45d66bd
Compare
45d66bd to
1c65de4
Compare
1c65de4 to
0859859
Compare
✅ Deploy Preview for rolldown-rs canceled.
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…rectly (#7710) - It's meaningless now - `resource_id` concept is related to import attributes - let's only reconsider this abstraction when we're working on import attributes
0859859 to
8afbf65
Compare
## [1.0.0-beta.58] - 2025-12-31 ### 💥 BREAKING CHANGES - experimental/devtools: rename InputOptions#debug to InputOptions#devtools (#7686) by @Copilot ### 🚀 Features - implement target feature check in `should_transform_js` for raw options (#7697) by @shulaoda - support `output.dynamicImportInCjs` option (#7677) by @shulaoda - types: expose `ChecksOptions` type (#7653) by @sapphi-red ### 🐛 Bug Fixes - export runtime helpers for cross-chunk access (#7658) by @shulaoda - cjs namespace merging regression (#7665) by @IWANABETHATGUY - replace panic with proper error handling for hash placeholder generation (#7661) by @shulaoda - remove the blank line between shebang and postBanner (#7643) by @btea - rolldown_plugin_vite_reporter: apply padding before ANSI coloring for proper size column alignment (#7649) by @shulaoda ### 🚜 Refactor - rust: use `StableModuleId` as the map key if possible (#7718) by @hyf0 - rust: return `StableModuleId` instead of `&str` from `Module#stable_id()` (#7717) by @hyf0 - rust: return correct stable id of external module from `Module#stable_id()` (#7716) by @hyf0 - rust: introduce `StableModuleId` type (#7715) by @hyf0 - rust: reduce unnecessary `id.as_arc_str().clone().into()` (#7714) by @hyf0 - rust: remove `ModuleId#resource_id` and use `as_arc_str` directly (#7710) by @hyf0 - rust: remove unused `Module#id_clone` (#7709) by @hyf0 - rust: remove `Module#id_as_str` and use `Module#id` directly (#7708) by @hyf0 - consolidate namespace call analysis into import analyzer (#7657) by @IWANABETHATGUY - rust: make `ExternalModule#id` have the type `ModuleId` (#7707) by @hyf0 - rust: rename `Module#id` to `Module#id_as_str` (#7706) by @hyf0 - rust: use `ModuleId` instead of raw `ArcStr` for `ScanStageCache` (#7701) by @hyf0 - simplify error propagation in cache merge (#7702) by @shulaoda - use `ModuleId` as the type of `ResolvedId#id` (#7694) by @hyf0 - types: rename `resolved_request_info.rs` to `resolved_id.rs` and move its contents (#7687) by @hyf0 - devtools: emit data to `<CWD>/node_modules/.rolldown` (#7692) by @hyf0 - use `InvalidOption` for hash placeholder generation errors (#7674) by @shulaoda - rolldown_error: remove dependency on rolldown_utils (#7672) by @shulaoda - use nodejs-built-in-modules v1.0.0 directly in callsites (#7667) by @Boshen ### 📚 Documentation - migrate input options content from options to auto gen docs (#7663) by @mdong1909 - create reference index page (#7659) by @mdong1909 - tweak auto-generated reference output (#7654) by @sapphi-red - initialize auto-gen docs (#7252) by @mdong1909 ### ⚙️ Miscellaneous Tasks - deps: update napi (#7705) by @renovate[bot] - pin Node.js version to 24.12.0 LTS in .node-version file (#7713) by @Copilot - update esbuild test reasons (#7703) by @sapphi-red - deps: update crate-ci/typos action to v1.40.1 (#7696) by @renovate[bot] - deps: update oxc to v0.106.0 (#7512) by @renovate[bot] - js: replace dprint with oxfmt (#7214) by @Boshen - deps: update dependency oxlint to v1.36.0 (#7691) by @renovate[bot] - deps: update github-actions (#7679) by @renovate[bot] - deps: update npm packages (#7680) by @renovate[bot] - deps: update rust crates (#7678) by @renovate[bot] - deps: update oxc resolver to v11.16.2 (#7668) by @renovate[bot] - add API reference files to knip entry points (#7669) by @Copilot - deps: update notify (#7651) by @sapphi-red - add `homepage` field to package.json (#7648) by @trivikr - deps: update oxc resolver to v11.16.1 (#7647) by @renovate[bot] - deps: update rolldown-plugin-dts to 0.20.0 (#7645) by @shulaoda Co-authored-by: shulaoda <[email protected]>

resource_idconcept is related to import attributes