refactor(compiler-sfc): refSugar -> refTransform, export shouldTransformRef

This commit is contained in:
Evan You 2021-08-23 12:19:41 -04:00
parent 986681568f
commit 0805abe573
2 changed files with 12 additions and 7 deletions

View File

@ -52,8 +52,8 @@ import { warnExperimental, warnOnce } from './warn'
import { rewriteDefault } from './rewriteDefault'
import { createCache } from './cache'
import {
shouldTransform,
transformAST as transformWithRefSugar
shouldTransform as shouldTransformRef,
transformAST as transformRefAST
} from '@vue/ref-transform'
// Special compiler macros
@ -81,10 +81,14 @@ export interface SFCScriptCompileOptions {
*/
babelParserPlugins?: ParserPlugin[]
/**
* Introduce a compiler-based syntax sugar for using refs without `.value`
* (Experimental) Enable syntax transform for using refs without `.value`
* https://github.com/vuejs/rfcs/discussions/369
* @default true
*/
refTransform?: boolean
/**
* @deprecated use `refTransform` instead.
*/
refSugar?: boolean
/**
* Compile the template and inline the resulting render function
@ -121,7 +125,7 @@ export function compileScript(
): SFCScriptBlock {
let { script, scriptSetup, source, filename } = sfc
// feature flags
const enableRefSugar = !!options.refSugar
const enableRefTransform = !!options.refSugar || !!options.refTransform
let refBindings: string[] | undefined
// for backwards compat
@ -858,12 +862,12 @@ export function compileScript(
}
// 3. Apply ref sugar transform
if (enableRefSugar && shouldTransform(source)) {
if (enableRefTransform && shouldTransformRef(source)) {
warnExperimental(
`ref sugar`,
`https://github.com/vuejs/rfcs/discussions/369`
)
const { rootVars, importedHelpers } = transformWithRefSugar(
const { rootVars, importedHelpers } = transformRefAST(
scriptSetupAst,
s,
startOffset

View File

@ -4,8 +4,9 @@ export { compileTemplate } from './compileTemplate'
export { compileStyle, compileStyleAsync } from './compileStyle'
export { compileScript } from './compileScript'
export { rewriteDefault } from './rewriteDefault'
export { generateCodeFrame, walkIdentifiers } from '@vue/compiler-core'
export { generateCodeFrame } from '@vue/compiler-core'
export {
shouldTransform as shouldTransformRef,
transform as transformRef,
transformAST as transformRefAST
} from '@vue/ref-transform'