return node
}
- const { inline, inlinePropsIdentifier, bindingMetadata } = context
+ const { inline, bindingMetadata } = context
const prefix = (raw: string) => {
const type = hasOwn(bindingMetadata, raw) && bindingMetadata[raw]
if (inline) {
// setup inline mode
- if (type === 'props') {
- return `${inlinePropsIdentifier}.${raw}`
- } else if (type === 'setup') {
+ if (type === 'setup') {
return `${context.helperString(UNREF)}(${raw})`
} else if (type === 'component-import') {
return raw
)
}
- // parse the signature to extract the identifiers users are assigning to
- // the arguments. props identifier is always needed for inline mode
- // template compilation
- const params = ((signatureAST as ExpressionStatement)
- .expression as ArrowFunctionExpression).params
- if (params[0] && params[0].type === 'Identifier') {
- propsASTNode = params[0]
- propsIdentifier = propsASTNode.name
- }
-
if (isTS) {
// <script setup="xxx" lang="ts">
- // additional identifiers are needed for TS in order to match declared
- // types
+ // parse the signature to extract the identifiers users are assigning to
+ // the arguments. They are needed for matching type delcarations.
+ const params = ((signatureAST as ExpressionStatement)
+ .expression as ArrowFunctionExpression).params
+ if (params[0] && params[0].type === 'Identifier') {
+ propsASTNode = params[0]
+ propsIdentifier = propsASTNode.name
+ }
if (params[1] && params[1].type === 'ObjectPattern') {
setupCtxASTNode = params[1]
for (const p of params[1].properties) {
}
// 7. finalize setup argument signature.
- let args = options.inlineTemplate ? `$props` : ``
+ let args = ``
if (isTS) {
if (slotsType === 'Slots') {
helperImports.add('Slots')
source: sfc.template.content,
compilerOptions: {
inline: true,
- inlinePropsIdentifier: propsIdentifier,
bindingMetadata
}
// TODO source map