From: Tycho Date: Fri, 10 Nov 2023 06:22:00 +0000 (+0800) Subject: refactor(compiler-sfc): reuse `forAliasRE` regex from compiler-core (#9568) X-Git-Tag: v3.3.9~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5fd343555ee5f2cd00748a331e416004b5923e1;p=thirdparty%2Fvuejs%2Fcore.git refactor(compiler-sfc): reuse `forAliasRE` regex from compiler-core (#9568) --- diff --git a/packages/compiler-core/src/transforms/vFor.ts b/packages/compiler-core/src/transforms/vFor.ts index a44532c0d5..56144dcd28 100644 --- a/packages/compiler-core/src/transforms/vFor.ts +++ b/packages/compiler-core/src/transforms/vFor.ts @@ -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 = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/ diff --git a/packages/compiler-core/src/utils.ts b/packages/compiler-core/src/utils.ts index bd2882b09e..baffe5086f 100644 --- a/packages/compiler-core/src/utils.ts +++ b/packages/compiler-core/src/utils.ts @@ -519,3 +519,5 @@ export function getMemoedVNodeCall(node: BlockCodegenNode | MemoExpression) { return node } } + +export const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/ diff --git a/packages/compiler-sfc/src/script/importUsageCheck.ts b/packages/compiler-sfc/src/script/importUsageCheck.ts index a7e2e6f356..34e95f1918 100644 --- a/packages/compiler-sfc/src/script/importUsageCheck.ts +++ b/packages/compiler-sfc/src/script/importUsageCheck.ts @@ -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') {