From b4189ed0ccfe16c8ddebb5327969d5e08ce49594 Mon Sep 17 00:00:00 2001 From: daiwei Date: Thu, 26 Aug 2021 09:21:19 +0800 Subject: [PATCH 1/2] fix(refSugar): should transform ref with typed declaration chore: improve RE test: improve test case --- .../compileScriptRefTransform.spec.ts.snap | 15 +++++++++++++++ .../__tests__/compileScriptRefTransform.spec.ts | 11 +++++++++++ packages/ref-transform/src/refTransform.ts | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/packages/compiler-sfc/__tests__/__snapshots__/compileScriptRefTransform.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/compileScriptRefTransform.spec.ts.snap index f5674a371a9..5a7b9eb7ca7 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/compileScriptRefTransform.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/compileScriptRefTransform.spec.ts.snap @@ -42,6 +42,21 @@ return { foo, a, b, c, d } }" `; +exports[`sfc ref transform usage /w typescript 1`] = ` +"import { ref as _ref, defineComponent as _defineComponent } from 'vue' + +export default _defineComponent({ + setup(__props, { expose }) { + expose() + + let msg = _ref('foo'); + +return { msg } +} + +})" +`; + exports[`sfc ref transform usage in normal + `) + expect(content).toMatch(`import { ref as _ref`) + expect(content).toMatch(`let msg = _ref('foo')`) + assertCode(content) + }) + test('usage with normal `) expect(content).toMatch(`import { ref as _ref`) expect(content).toMatch(`let msg = _ref('foo')`) + expect(content).toMatch(`let bar = _ref ('bar')`) assertCode(content) }) diff --git a/packages/ref-transform/src/refTransform.ts b/packages/ref-transform/src/refTransform.ts index b688ee5e465..7fae8562e0c 100644 --- a/packages/ref-transform/src/refTransform.ts +++ b/packages/ref-transform/src/refTransform.ts @@ -25,7 +25,7 @@ import { babelParserDefaultPlugins } from '@vue/shared' const TO_VAR_SYMBOL = '$' const TO_REF_SYMBOL = '$$' const shorthands = ['ref', 'computed', 'shallowRef'] -const transformCheckRE = /[^\w]\$(?:\$|ref|computed|shallowRef)?(\(|\<)/ +const transformCheckRE = /[^\w]\$(?:\$|ref|computed|shallowRef)?\s*(\(|\<)/ export function shouldTransform(src: string): boolean { return transformCheckRE.test(src)