-
-
Notifications
You must be signed in to change notification settings - Fork 757
feat(rstest): add preserveNewUrl option to keep new URL untouched #12632
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
Conversation
✅ Deploy Preview for rspack ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Summary of ChangesHello @fi3ework, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the RstestPlugin by introducing a Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
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 adds a preserveNewUrl option to the RstestPlugin to keep new URL("*.wasm", import.meta.url) expressions untouched in the output, which is useful for testing scenarios where the original URL construction needs to be preserved (e.g., when using fs.readFile() with WASM paths in tests).
Key Changes:
- Added
preserveNewUrlboolean option (default:false) to RstestPlugin configuration - Implemented custom URL dependency template that skips transformation for
.wasmfiles when the option is enabled - Non-wasm assets continue to be processed normally through the standard URL dependency template
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
crates/rspack_plugin_rstest/src/url_dependency.rs |
New module implementing RstestUrlDependencyTemplate that conditionally preserves wasm URL expressions |
crates/rspack_plugin_rstest/src/plugin.rs |
Updated to conditionally register the custom URL dependency template when preserve_new_url is enabled |
crates/rspack_plugin_rstest/src/lib.rs |
Added the new url_dependency module to the plugin exports |
crates/rspack_binding_api/src/rstest.rs |
Added preserve_new_url field to the plugin options with default value of false |
crates/node_binding/napi-binding.d.ts |
Added TypeScript type definition for the new optional preserveNewUrl field |
tests/rspack-test/configCases/rstest/new-url-wasm/* |
New test case validating that wasm URLs are preserved while non-wasm URLs are transformed normally |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
📦 Binary Size-limit
❌ Size increased by 3.13KB from 47.87MB to 47.87MB (⬆️0.01%) |
Rsdoctor Bundle Diff AnalysisFound 5 projects in monorepo, 0 projects with changes. 📊 Quick Summary
Generated by Rsdoctor GitHub Action |
CodSpeed Performance ReportMerging #12632 will not alter performanceComparing Summary
Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a preserveNewUrl option to the RstestPlugin to prevent new URL("*.wasm", ...) expressions from being processed, which is useful in testing environments. The implementation is clean, adding a new dependency template to conditionally handle URL dependencies, and is well-supported by new tests. My feedback includes a minor cleanup to remove an unused import.
|
@copilot fix the failed CI. |
…2632) * feat(rstest): add preserveNewUrl option to keep new URL untouched * fix: format Rust code with rustfmt
* react_server_components transform * fix: ReactServerComponents * ReactServerComponentPlugin * fix: rspack_loader_swc Wtf8Atom * feat: ReactServerComponentPlugin * feat: ServerEntryModules * exports_info * temp * feat: import with layer * fix: before pass * export ReactServerComponentsPlugin * ServerEntries * feat: client_entry_loader * feat: client compiler * feat: traverse_modules * feat: ClientReferenceManifestPlugin * feat: react_server_components layer * fix ReactClientPlugin * fix: ClientReferenceManifestPlugin * refactor: rename to ReactServerPlugin * remove eager * feat: collect entry css files * feat: use server-entry * server actions transform * feat: action_entry_loader * collect server_actions * temp * manifest-loader * RscManifestRuntimeModule * fix: build_server_consumer_module_map * fix: entry_css_files * feat: record_entry_js_files * refactor: entry_css_files * fix: entry js files and entry css files should concat prefix * remove unused code * chore: rename loader and plugin * fix: Coordinator * fix: entry js files prevent hot-module files from being included * clear PLUGIN_STATE_BY_COMPILER_ID * feat: add_include client action * feat: prev_server_component_hashs * fix: client compiler not rebuild right * export RSC_LAYERS_NAMES * fix: remove import with layer * refactor: rsc_pass * refactor: rsc_meta * refactor: to_module_ref * fix: cargo clippy * fix: lint and spelling * api changed * refactor: use get_module_resource * fix: ts type * fix: compiler watching * feat: check should_inject_ssr_modules * fix: only invalidate client after proxying client watching * fix: client module chunks should exclude hot module replacement js * chore: rename coordinator mod * fix: collect_component_info_from_entry_denendency * fix: panic in create_client_entries * fix: browser action * rm ACTION_BROWSER layer * fix: use atomic ref * refactor client plugin * fix: should handle compile failed * chore: rm unused print * fix: use server-entry mix use client * feat: ensureServerActions * fix: RSC_HOT_RELOADER * refactor: create_client_entries * fix: encryptActionBoundArgs and decryptActionBoundArgs * fix: should collect entry css files in after_process_assets hook * fix: with concat module * chore(deps): update patch npm dependencies (#12647) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update patch crates (#12646) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore: run ci/eco-ci/eco-benchmark on v2 branch (#12650) * fix: report error when access module_graph in loader (#12639) * fix: report error when access module_graph in loader * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * feat(rstest): add preserveNewUrl option to keep new URL untouched (#12632) * feat(rstest): add preserveNewUrl option to keep new URL untouched * fix: format Rust code with rustfmt * fix(lint): enable @typescript-eslint/await-thenable rule (#12644) * fix(lint): enable await-thenable rule and fix violation - Enable @typescript-eslint/await-thenable rule (off -> error) - Remove unnecessary await on syncTraceEvent() which returns void * Update rslint.json --------- Co-authored-by: neverland <jait.chen@foxmail.com> * fix: cargo clippy * refactor: rm RSC_HOT_RELOADER runtime module * fix: lint check * refactor: rename RscPluginLayers * warp rsc in namespace * fix: rsc client plugin * fix: cargo fmt * add next.js Copyright * fix: user can change fileDependencies in done hook * chore: add comments * fix: cargo fmt * rm ustr dependencies --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: harpsealjs <lingyucoder@gmail.com> Co-authored-by: hardfist <yangjianzju@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Max <fi3ework@gmail.com> Co-authored-by: Tu Shaokun <53142663+tt-a1i@users.noreply.github.com> Co-authored-by: neverland <jait.chen@foxmail.com>
Summary
Add
preserveNewUrloption to RstestPlugin (default:false)When enabled, matched new URL expression like
new URL("*.wasm", import.meta.url)expressions are preserved in output, this is useful in testing case, especially for following code:Non-matched assets continue to be processed normally
Related links
Checklist