From 74031bac34d61d5210b4962d4f1deddd3bfa6e5c Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90=20Kevin=20Deng?= Date: Fri, 24 Nov 2023 19:57:20 +0800 Subject: [PATCH] fix: remove get children when no dynamic node --- .../__snapshots__/compile.test.ts.snap | 23 ++++++++++++++++++ ...sic.test.ts.snap => fixtures.test.ts.snap} | 2 +- .../compiler-vapor/__tests__/compile.test.ts | 24 +++++++++++++++++++ .../{basic.test.ts => fixtures.test.ts} | 3 +-- packages/compiler-vapor/src/generate.ts | 2 +- 5 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 packages/compiler-vapor/__tests__/__snapshots__/compile.test.ts.snap rename packages/compiler-vapor/__tests__/__snapshots__/{basic.test.ts.snap => fixtures.test.ts.snap} (97%) create mode 100644 packages/compiler-vapor/__tests__/compile.test.ts rename packages/compiler-vapor/__tests__/{basic.test.ts => fixtures.test.ts} (83%) diff --git a/packages/compiler-vapor/__tests__/__snapshots__/compile.test.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/compile.test.ts.snap new file mode 100644 index 0000000000..b83f0dea60 --- /dev/null +++ b/packages/compiler-vapor/__tests__/__snapshots__/compile.test.ts.snap @@ -0,0 +1,23 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`comile > bindings 1`] = ` +"import { watchEffect } from 'vue' +import { template, setText } from 'vue/vapor' +const t0 = template(\`
\`) +export function render() { +const root = t0() +watchEffect(() => { +setText(n0, undefined, count.value) +}) +return root +}" +`; + +exports[`comile > static template 1`] = ` +"import { template } from 'vue/vapor' +const t0 = template(\`

hello

\`) +export function render() { +const root = t0() +return root +}" +`; diff --git a/packages/compiler-vapor/__tests__/__snapshots__/basic.test.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/fixtures.test.ts.snap similarity index 97% rename from packages/compiler-vapor/__tests__/__snapshots__/basic.test.ts.snap rename to packages/compiler-vapor/__tests__/__snapshots__/fixtures.test.ts.snap index 1a578cd93e..4a4d7c6ced 100644 --- a/packages/compiler-vapor/__tests__/__snapshots__/basic.test.ts.snap +++ b/packages/compiler-vapor/__tests__/__snapshots__/fixtures.test.ts.snap @@ -1,6 +1,6 @@ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html -exports[`basic 1`] = ` +exports[`fixtures 1`] = ` "import { defineComponent as _defineComponent } from 'vue' import { watchEffect } from 'vue' import { template, insert, setText, on, setHtml } from 'vue/vapor' diff --git a/packages/compiler-vapor/__tests__/compile.test.ts b/packages/compiler-vapor/__tests__/compile.test.ts new file mode 100644 index 0000000000..2e02f28de0 --- /dev/null +++ b/packages/compiler-vapor/__tests__/compile.test.ts @@ -0,0 +1,24 @@ +import { BindingTypes } from '@vue/compiler-dom' +import { compile } from '../src' + +describe('comile', () => { + it('static template', () => { + const { code } = compile( + `
+

hello

+ +
`, + {}, + ) + expect(code).matchSnapshot() + }) + + it('bindings', () => { + const { code } = compile(`
{{ count }}
`, { + bindingMetadata: { + count: BindingTypes.SETUP_REF, + }, + }) + expect(code).matchSnapshot() + }) +}) diff --git a/packages/compiler-vapor/__tests__/basic.test.ts b/packages/compiler-vapor/__tests__/fixtures.test.ts similarity index 83% rename from packages/compiler-vapor/__tests__/basic.test.ts rename to packages/compiler-vapor/__tests__/fixtures.test.ts index dc83c2e706..7ece9c981d 100644 --- a/packages/compiler-vapor/__tests__/basic.test.ts +++ b/packages/compiler-vapor/__tests__/fixtures.test.ts @@ -1,9 +1,8 @@ import * as CompilerVapor from '../src' -// import * as CompilerDOM from '@vue/compiler-dom' import { parse, compileScript } from '@vue/compiler-sfc' import source from './fixtures/counter.vue?raw' -test('basic', async () => { +test('fixtures', async () => { const { descriptor } = parse(source, { compiler: CompilerVapor }) const script = compileScript(descriptor, { id: 'counter.vue', diff --git a/packages/compiler-vapor/src/generate.ts b/packages/compiler-vapor/src/generate.ts index bef9705bde..e2ed01b73e 100644 --- a/packages/compiler-vapor/src/generate.ts +++ b/packages/compiler-vapor/src/generate.ts @@ -29,7 +29,7 @@ export function generate( // TODO multiple-template code += `const root = t0()\n` - if (ir.children[0]) { + if (ir.children[0] && Object.keys(ir.children[0].children).length) { code += `const {${genChildren(ir.children[0].children)}} = children(root)\n` vaporHelpers.add('children') } -- 2.47.2