From 2ac2c85617d78087f39695004d6ca985a1be1434 Mon Sep 17 00:00:00 2001 From: skywalker Date: Tue, 6 Dec 2022 16:10:42 +0000 Subject: [PATCH] fix(reactivity-transform): semicolon after statements with nested destructure --- .../__snapshots__/reactivityTransform.spec.ts.snap | 8 +++++--- .../__tests__/reactivityTransform.spec.ts | 10 ++++++---- .../reactivity-transform/src/reactivityTransform.ts | 8 ++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap b/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap index 26490ac9d9d..789350608c5 100644 --- a/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap +++ b/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap @@ -159,11 +159,13 @@ exports[`nested destructure 1`] = ` "import { toRef as _toRef } from 'vue' let __$temp_1 = (useFoo()), - b = _toRef(__$temp_1[0].a, 'b'); + b = _toRef(__$temp_1[0].a, 'b'), + n = _toRef(__$temp_1[0].z, 'n'); let __$temp_2 = (useBar()), d = _toRef(__$temp_2.c, 0), - e = _toRef(__$temp_2.c, 1); - console.log(b.value, d.value, e.value) + e = _toRef(__$temp_2.c, 1), + h = _toRef(__$temp_2.f, 0); + console.log(b.value, d.value, e.value, h.value, n.value) " `; diff --git a/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts b/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts index 5255be6ba8b..410b405b7a0 100644 --- a/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts +++ b/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts @@ -281,14 +281,16 @@ test('array destructure', () => { test('nested destructure', () => { const { code, rootRefs } = transform(` - let [{ a: { b }}] = $(useFoo()) - let { c: [d, e] } = $(useBar()) - console.log(b, d, e) + let [{ a: { b }, z: { n }}] = $(useFoo()) + let { c: [d, e], f: [h] } = $(useBar()) + console.log(b, d, e, h, n) `) expect(code).toMatch(`b = _toRef(__$temp_1[0].a, 'b')`) + expect(code).toMatch(`n = _toRef(__$temp_1[0].z, 'n')`) expect(code).toMatch(`d = _toRef(__$temp_2.c, 0)`) expect(code).toMatch(`e = _toRef(__$temp_2.c, 1)`) - expect(rootRefs).toStrictEqual(['b', 'd', 'e']) + expect(code).toMatch(`h = _toRef(__$temp_2.f, 0)`) + expect(rootRefs).toStrictEqual(['b', 'n', 'd', 'e', 'h']) assertCode(code) }) diff --git a/packages/reactivity-transform/src/reactivityTransform.ts b/packages/reactivity-transform/src/reactivityTransform.ts index f1d5d8916fd..973432317df 100644 --- a/packages/reactivity-transform/src/reactivityTransform.ts +++ b/packages/reactivity-transform/src/reactivityTransform.ts @@ -343,8 +343,10 @@ export function transformAST( registerRefBinding(id, isConst) } else if (id.type === 'ObjectPattern') { processRefObjectPattern(id, call, isConst) + s.appendLeft(call.end! + offset, ';') } else if (id.type === 'ArrayPattern') { processRefArrayPattern(id, call, isConst) + s.appendLeft(call.end! + offset, ';') } } else { // shorthands @@ -451,9 +453,6 @@ export function transformAST( ) } } - if (nameId) { - s.appendLeft(call.end! + offset, ';') - } } function processRefArrayPattern( @@ -502,9 +501,6 @@ export function transformAST( ) } } - if (nameId) { - s.appendLeft(call.end! + offset, ';') - } } type PathSegmentAtom = Expression | string | number