Skip to content

refactor: introduce vue-jsx - #63

Open
zhiyuanzmj wants to merge 11 commits into
mainfrom
minor
Open

refactor: introduce vue-jsx#63
zhiyuanzmj wants to merge 11 commits into
mainfrom
minor

Conversation

@zhiyuanzmj

Copy link
Copy Markdown
Member

No description provided.

Copilot AI lite review requested due to automatic review settings August 16, 2026 17:28
@netlify

netlify Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploy Preview for jsx-vapor failed.

Name Link
🔨 Latest commit 2b0cc1f
🔍 Latest deploy log https://app.netlify.com/projects/jsx-vapor/deploys/6a85b7028946df00088a75e6

Copilot AI left a comment

Copy link
Copy Markdown

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 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/compiler and updates imports/usages (benchmarks, tests, package deps, scripts, workflows).
  • Switches various packages’ exports to simplified ESM-only subpath mappings and updates tsdown/TypeScript configs (removing customConditions).
  • 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.

Comment thread .github/workflows/release.yml
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.

2 participants