refactor(compiler-sfc): reuse `forAliasRE` regex from compiler-core (#9568)

This commit is contained in:
Tycho 2023-11-10 14:22:00 +08:00 committed by GitHub
parent ae6f164b03
commit d5fd343555
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 4 deletions

View File

@ -37,7 +37,8 @@ import {
isTemplateNode,
isSlotOutlet,
injectProp,
findDir
findDir,
forAliasRE
} from '../utils'
import {
RENDER_LIST,
@ -308,7 +309,6 @@ export function processFor(
}
}
const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/
// This regex doesn't cover the case if key or index aliases have destructuring,
// but those do not make sense in the first place, so this works in practice.
const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/

View File

@ -519,3 +519,5 @@ export function getMemoedVNodeCall(node: BlockCodegenNode | MemoExpression) {
return node
}
}
export const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/

View File

@ -4,6 +4,7 @@ import {
NodeTypes,
SimpleExpressionNode,
createRoot,
forAliasRE,
parserOptions,
transform,
walkIdentifiers
@ -87,8 +88,6 @@ function resolveTemplateUsageCheckString(sfc: SFCDescriptor) {
return code
}
const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/
function processExp(exp: string, dir?: string): string {
if (/ as\s+\w|<.*>|:/.test(exp)) {
if (dir === 'slot') {