From 2fb3153b03ca08134d036c918b85f6aadb86a88c Mon Sep 17 00:00:00 2001
From: alexzhang1030 <1642114555@qq.com>
Date: Wed, 13 Dec 2023 16:17:39 +0800
Subject: [PATCH 1/2] fix(core): fix analyzer duplicate injection code
---
packages/core/src/compiler/trace-rerender.ts | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/packages/core/src/compiler/trace-rerender.ts b/packages/core/src/compiler/trace-rerender.ts
index 4cb4e6c0..fb353bca 100644
--- a/packages/core/src/compiler/trace-rerender.ts
+++ b/packages/core/src/compiler/trace-rerender.ts
@@ -22,6 +22,15 @@ export function analyzeByTraceRerender(code: MS, locations: InsertLocation[]) {
});\n`,
}
+ // to avoid duplicate injection
+ const currentCode = code.toString()
+ const shouldInject = Object.entries(apiNames).map(([, alias]) => {
+ return !currentCode.includes(alias)
+ }).every(Boolean)
+
+ if (!shouldInject)
+ return code
+
locations.forEach(({ start, end }, idx) => {
if (idx === 0) {
code = ensureImport(code, {
@@ -30,6 +39,7 @@ export function analyzeByTraceRerender(code: MS, locations: InsertLocation[]) {
})),
}, start)
}
+
entries(injectedCodes).forEach(([, appendCode]) => {
code.prependLeft(end, appendCode)
})
From 0436b3e2a33402f752cccc32dbc6d96b633e7ffa Mon Sep 17 00:00:00 2001
From: alexzhang1030 <1642114555@qq.com>
Date: Wed, 13 Dec 2023 16:25:31 +0800
Subject: [PATCH 2/2] chore: playground add jsx
---
packages/playground/package.json | 1 +
packages/playground/src/App.vue | 2 +
packages/playground/src/components/TSX.vue | 9 +
packages/playground/vite.config.ts | 2 +
pnpm-lock.yaml | 279 ++++++++++++++++++++-
5 files changed, 292 insertions(+), 1 deletion(-)
create mode 100644 packages/playground/src/components/TSX.vue
diff --git a/packages/playground/package.json b/packages/playground/package.json
index dc6bc1c3..96b85507 100644
--- a/packages/playground/package.json
+++ b/packages/playground/package.json
@@ -15,6 +15,7 @@
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.4.0",
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
"serve": "^14.2.1",
"typescript": "^5.2.2",
"vite": "^4.4.11",
diff --git a/packages/playground/src/App.vue b/packages/playground/src/App.vue
index e3b5ddc9..78e77d0b 100644
--- a/packages/playground/src/App.vue
+++ b/packages/playground/src/App.vue
@@ -2,6 +2,7 @@
import { computed, reactive, ref } from 'vue'
import { useRouter } from 'vue-router'
import ReadCounter from './components/ReadCounter.vue'
+import TSX from './components/TSX.vue'
const count = ref(0)
const doubleCount = computed(() => {
@@ -43,6 +44,7 @@ const router = useRouter()
{{ count }}
{{ doubleCount }}
+ TSX: