From a81a9922bb6d3398a22c743b6ff476fb232dedfd Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 21 Jan 2022 07:40:35 +0800 Subject: [PATCH] fix(reactivity-transform): apply transform on exported variable declarations fix #5298 --- .../__snapshots__/reactivityTransform.spec.ts.snap | 2 +- .../__tests__/reactivityTransform.spec.ts | 4 ++-- packages/reactivity-transform/src/reactivityTransform.ts | 7 +++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap b/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap index b120724ff6a..793ee307632 100644 --- a/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap +++ b/packages/reactivity-transform/__tests__/__snapshots__/reactivityTransform.spec.ts.snap @@ -4,7 +4,7 @@ exports[`$ unwrapping 1`] = ` " import { ref, shallowRef } from 'vue' let foo = (ref()) - let a = (ref(1)) + export let a = (ref(1)) let b = (shallowRef({ count: 0 })) diff --git a/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts b/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts index c3c90aae57e..916bd5a7d59 100644 --- a/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts +++ b/packages/reactivity-transform/__tests__/reactivityTransform.spec.ts @@ -19,7 +19,7 @@ test('$ unwrapping', () => { const { code, rootRefs } = transform(` import { ref, shallowRef } from 'vue' let foo = $(ref()) - let a = $(ref(1)) + export let a = $(ref(1)) let b = $(shallowRef({ count: 0 })) @@ -30,7 +30,7 @@ test('$ unwrapping', () => { expect(code).not.toMatch(`$(ref(1))`) expect(code).not.toMatch(`$(shallowRef({`) expect(code).toMatch(`let foo = (ref())`) - expect(code).toMatch(`let a = (ref(1))`) + expect(code).toMatch(`export let a = (ref(1))`) expect(code).toMatch(` let b = (shallowRef({ count: 0 diff --git a/packages/reactivity-transform/src/reactivityTransform.ts b/packages/reactivity-transform/src/reactivityTransform.ts index 706b09ec5ad..be6ceb75693 100644 --- a/packages/reactivity-transform/src/reactivityTransform.ts +++ b/packages/reactivity-transform/src/reactivityTransform.ts @@ -229,6 +229,12 @@ export function transformAST( stmt.left.type === 'VariableDeclaration' ) { walkVariableDeclaration(stmt.left) + } else if ( + stmt.type === 'ExportNamedDeclaration' && + stmt.declaration && + stmt.declaration.type === 'VariableDeclaration' + ) { + walkVariableDeclaration(stmt.declaration, isRoot) } } } @@ -562,6 +568,7 @@ export function transformAST( return } + // skip type nodes if ( parent && parent.type.startsWith('TS') &&