refactor: introduce vue-jsx - #63
Open
zhiyuanzmj wants to merge 11 commits into
Open
Conversation
❌ Deploy Preview for jsx-vapor failed.
|
There was a problem hiding this comment.
Pull request overview
This PR refactors the project to introduce/rename the Rust compiler package to @vue-jsx-vapor/compiler, updates build/tooling configuration accordingly, and removes the previous jsx-vapor-dev conditional-resolution workflow across the repo.
Changes:
- Renames
@vue-jsx-vapor/compiler-rs→@vue-jsx-vapor/compilerand updates imports/usages (benchmarks, tests, package deps, scripts, workflows). - Switches various packages’
exportsto simplified ESM-only subpath mappings and updates tsdown/TypeScript configs (removingcustomConditions). - Adds new WASI worker implementations and substantial new Rust transform/codegen modules (vdom/vapor/common) plus new test module structure.
Reviewed changes
Copilot reviewed 75 out of 176 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tsdown.config.ts | Updates tsdown defaults (notably DTS generation config). |
| tsconfig.json | Removes customConditions for conditional exports. |
| pnpm-workspace.yaml | Reworks workspace dependency controls (overrides/patches/catalog/allowBuilds). |
| playground/vite.js | Removes custom Vite wrapper that set resolve.conditions. |
| playground/vite.config.ts | Drops @vue-macros/define-render usage from playground Vite config. |
| playground/tsconfig.json | Removes customConditions and macro global types. |
| playground/src/Comp.vue | Migrates component example away from defineRender to <script setup> usage. |
| playground/package.json | Switches scripts to plain vite CLI and removes macro deps. |
| packages/vue-jsx-vapor/tsdown.config.ts | Updates bundling config for volar dependency handling. |
| packages/vue-jsx-vapor/src/options.d.ts | Updates compiler type import to @vue-jsx-vapor/compiler. |
| packages/vue-jsx-vapor/src/core/index.ts | Switches runtime transform import to @vue-jsx-vapor/compiler. |
| packages/vue-jsx-vapor/package.json | Simplifies exports and switches dependency to @vue-jsx-vapor/compiler. |
| packages/runtime/package.json | Simplifies exports/entrypoints for runtime package. |
| packages/macros/package.json | Simplifies exports/entrypoints for macros package. |
| packages/eslint/package.json | Simplifies exports/entrypoints for eslint package. |
| packages/compiler/wasi-worker.mjs | Adds Node WASI worker implementation for wasm runtime. |
| packages/compiler/wasi-worker-browser.mjs | Adds browser WASI worker implementation for wasm runtime. |
| packages/compiler/tsconfig.json | Switches TS module target to ESNext. |
| packages/compiler/tests/vdom/v_text.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_slots.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_slot.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_show.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_once.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_on.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_model.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_memo.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_if.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_html.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/v_for.rs | Updates test imports to renamed compiler crate (plus in-file module import). |
| packages/compiler/tests/vdom/v_bind.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/transform_transition.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/transform_text.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/transform_slot_outlet.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/transform_element.rs | Updates test imports to renamed compiler crate (plus in-file module import). |
| packages/compiler/tests/vdom/mod.rs | Introduces vdom test module index. |
| packages/compiler/tests/vdom/custom_directive.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vdom/cache_static.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_text.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_slots.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_slot.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_show.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_once.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_on.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_model.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_if.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_html.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_for.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/v_bind.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/transform_transition.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/transform_text.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/transform_template_ref.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/transform_slot_outlet.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/transform_key.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/transform_element.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/transform_children.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/placeholder_alignment.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/mod.rs | Introduces vapor test module index. |
| packages/compiler/tests/vapor/custom_directive.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/vapor/abbreviation.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/transform/ssr.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/transform/options.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/transform/optimize.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/transform/mod.rs | Introduces transform test module index. |
| packages/compiler/tests/transform/interop.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/transform/hmr.rs | Updates test imports to renamed compiler crate. |
| packages/compiler/tests/mod.rs | Introduces top-level compiler test module index. |
| packages/compiler/src/lib.rs | Adds Rust compiler entrypoint + napi-facing _transform and core transform. |
| packages/compiler/scripts/patch-wasi-browser.mjs | Adds post-processing script for WASI browser bundle. |
| packages/compiler/rustfmt.toml | Adds rustfmt config (2-space indentation). |
| packages/compiler/README.md | Adds README for @vue-jsx-vapor/compiler. |
| packages/compiler/package.json | Renames npm package + binary name and switches build to ESM (--esm). |
| packages/compiler/index.d.ts | Adds generated TS typings for napi API surface. |
| packages/compiler/crates/vdom/src/transform/v_text.rs | Adds vdom directive transform for v-text. |
| packages/compiler/crates/vdom/src/transform/v_show.rs | Adds vdom directive transform for v-show. |
| packages/compiler/crates/vdom/src/transform/v_once.rs | Adds vdom directive transform for v-once. |
| packages/compiler/crates/vdom/src/transform/v_on.rs | Adds vdom directive transform for v-on handlers/modifiers. |
| packages/compiler/crates/vdom/src/transform/v_memo.rs | Adds vdom directive transform for v-memo. |
| packages/compiler/crates/vdom/src/transform/v_html.rs | Adds vdom directive transform for v-html. |
| packages/compiler/crates/vdom/src/transform/v_bind.rs | Adds vdom directive transform for v-bind args/modifiers. |
| packages/compiler/crates/vdom/src/transform/utils.rs | Adds vdom transform utilities (prop injection, slots heuristics). |
| packages/compiler/crates/vdom/src/transform/transform_transition.rs | Adds vdom transition-specific transform (persisted injection). |
| packages/compiler/crates/vdom/src/transform/transform_slot_outlet.rs | Adds vdom slot outlet transform. |
| packages/compiler/crates/vdom/src/transform/transform_children.rs | Adds vdom children transform/cleanup. |
| packages/compiler/crates/vdom/src/lib.rs | Exposes vdom crate modules. |
| packages/compiler/crates/vdom/src/ast.rs | Adds vdom AST node representations and helpers. |
| packages/compiler/crates/vdom/Cargo.toml | Adds vdom crate manifest. |
| packages/compiler/crates/vapor/src/transform/v_text.rs | Adds vapor directive transform for v-text. |
| packages/compiler/crates/vapor/src/transform/v_slots.rs | Adds vapor directive transform for v-slots. |
| packages/compiler/crates/vapor/src/transform/v_show.rs | Adds vapor directive transform for v-show. |
| packages/compiler/crates/vapor/src/transform/v_on.rs | Adds vapor directive transform for v-on (incl. delegation). |
| packages/compiler/crates/vapor/src/transform/v_model.rs | Adds vapor directive transform for v-model. |
| packages/compiler/crates/vapor/src/transform/v_html.rs | Adds vapor directive transform for v-html. |
| packages/compiler/crates/vapor/src/transform/v_for.rs | Adds vapor directive transform for v-for. |
| packages/compiler/crates/vapor/src/transform/v_bind.rs | Adds vapor directive transform for v-bind. |
| packages/compiler/crates/vapor/src/transform/transform_transition.rs | Adds vapor transition-specific transform (persisted injection). |
| packages/compiler/crates/vapor/src/transform/transform_template_ref.rs | Adds vapor template ref transform. |
| packages/compiler/crates/vapor/src/transform/transform_slot_outlet.rs | Adds vapor slot outlet transform. |
| packages/compiler/crates/vapor/src/transform/transform_key.rs | Adds vapor key transform and static key resolution. |
| packages/compiler/crates/vapor/src/lib.rs | Exposes vapor crate modules. |
| packages/compiler/crates/vapor/src/ir/component.rs | Adds vapor IR structures for props/slots. |
| packages/compiler/crates/vapor/src/ir.rs | Adds vapor IR module index. |
| packages/compiler/crates/vapor/src/generate/v_show.rs | Adds vapor codegen for v-show. |
| packages/compiler/crates/vapor/src/generate/v_model.rs | Adds vapor codegen for built-in v-model. |
| packages/compiler/crates/vapor/src/generate/v_if.rs | Adds vapor codegen for v-if IR. |
| packages/compiler/crates/vapor/src/generate/text.rs | Adds vapor codegen helpers for text/nodes. |
| packages/compiler/crates/vapor/src/generate/template_ref.rs | Adds vapor codegen for template refs. |
| packages/compiler/crates/vapor/src/generate/slot_outlet.rs | Adds vapor codegen for slot outlets. |
| packages/compiler/crates/vapor/src/generate/operation.rs | Adds vapor codegen dispatch for operations + insertion state. |
| packages/compiler/crates/vapor/src/generate/key.rs | Adds vapor codegen for keyed fragments. |
| packages/compiler/crates/vapor/src/generate/html.rs | Adds vapor codegen for v-html. |
| packages/compiler/crates/vapor/src/generate/expression.rs | Adds vapor expression codegen with identifier rewrites and assignment support. |
| packages/compiler/crates/vapor/src/generate/event.rs | Adds vapor codegen for event handlers and delegation. |
| packages/compiler/crates/vapor/src/generate/dom.rs | Adds vapor codegen for DOM insertion. |
| packages/compiler/crates/vapor/src/generate/directive.rs | Adds vapor codegen for directives (builtin + user directives). |
| packages/compiler/crates/vapor/src/generate/destructure.rs | Adds vapor destructure/id-mapping logic for codegen. |
| packages/compiler/crates/vapor/src/generate.rs | Adds vapor codegen context + root generation flow. |
| packages/compiler/crates/vapor/Cargo.toml | Adds vapor crate manifest. |
| packages/compiler/crates/common/src/walk.rs | Adds identifier walk utility with semantic scoping checks. |
| packages/compiler/crates/common/src/text.rs | Adds JSX text normalization/escaping and helpers. |
| packages/compiler/crates/common/src/options.rs | Adds shared transform options + napi-facing HMR options struct. |
| packages/compiler/crates/common/src/lib.rs | Adds common crate module index. |
| packages/compiler/crates/common/src/expression.rs | Adds expression parsing and attribute-to-expression conversion helpers. |
| packages/compiler/crates/common/src/error.rs | Adds error codes/messages and napi error/warning creation. |
| packages/compiler/crates/common/src/dom.rs | Adds HTML nesting validation tables/helpers. |
| packages/compiler/crates/common/src/ast.rs | Adds root-node wrapping utilities and helpers for JSX roots. |
| packages/compiler/crates/common/Cargo.toml | Adds common crate manifest. |
| packages/compiler/compiler.wasi.cjs | Updates WASI bundle to use renamed compiler.* wasm artifacts. |
| packages/compiler/compiler-rs.wasi.d.cts | Adds (generated) WASI typings file (still named compiler-rs.*). |
| packages/compiler/Cargo.toml | Renames crate to compiler. |
| packages/compiler/Cargo.lock | Updates lock entries for renamed crate. |
| packages/compiler/build.rs | Adds napi build script glue. |
| packages/compiler/browser.js | Exposes browser entrypoint for wasi build. |
| packages/compiler/benches/bench_vdom.rs | Updates benches to renamed compiler crate. |
| packages/compiler/benches/bench_vapor.rs | Updates benches to renamed compiler crate. |
| packages/compiler/.cargo/config.toml | Adds Windows static CRT build flags. |
| packages/compiler-rs/README.md | Removes old package README for compiler-rs. |
| package.json | Updates pnpm version requirement, test filter name, and tsdown version. |
| eslint.config.ts | Updates ignored WASI bundle filename pattern to compiler.wasi. |
| docs/vite.config.ts | Removes resolve.conditions for jsx-vapor-dev. |
| docs/.vitepress/config.ts | Removes TS customConditions in docs config. |
| benchmark/package.json | Switches benchmark dependency to @vue-jsx-vapor/compiler. |
| benchmark/bench.js | Switches benchmark import to @vue-jsx-vapor/compiler. |
| benchmark/bench-vue.js | Switches benchmark import to @vue-jsx-vapor/compiler. |
| .github/workflows/release.yml | Updates workflow to renamed compiler package paths and APP_NAME (partial). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.