diff --git a/packages/compiler-sfc/src/script/defineProps.ts b/packages/compiler-sfc/src/script/defineProps.ts index 38968527c9a..be99c6122ec 100644 --- a/packages/compiler-sfc/src/script/defineProps.ts +++ b/packages/compiler-sfc/src/script/defineProps.ts @@ -16,7 +16,8 @@ import { isLiteralNode, isCallOf, unwrapTSNode, - toRuntimeTypeString + toRuntimeTypeString, + getEscapedKey } from './utils' import { genModelProps } from './defineModel' import { getObjectOrArrayExpressionKeys } from './analyzeScriptBindings' @@ -364,14 +365,3 @@ function inferValueType(node: Node): string | undefined { return 'Function' } } - -/** - * key may contain symbols - * e.g. onUpdate:modelValue -> "onUpdate:modelValue" - */ -export const escapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g -function getEscapedKey(key: string) { - return escapeSymbolsRE.test(key) - ? JSON.stringify(key) - : key -} diff --git a/packages/compiler-sfc/src/script/utils.ts b/packages/compiler-sfc/src/script/utils.ts index 53362fcdca8..42c4718e3a8 100644 --- a/packages/compiler-sfc/src/script/utils.ts +++ b/packages/compiler-sfc/src/script/utils.ts @@ -108,3 +108,13 @@ export function normalizePath(p: string) { } export const joinPaths = (path.posix || path).join + +/** + * key may contain symbols + * e.g. onUpdate:modelValue -> "onUpdate:modelValue" + */ +export const escapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g + +export function getEscapedKey(key: string) { + return escapeSymbolsRE.test(key) ? JSON.stringify(key) : key +} diff --git a/packages/compiler-sfc/src/style/cssVars.ts b/packages/compiler-sfc/src/style/cssVars.ts index a3e2104999a..c86dbf2a5b9 100644 --- a/packages/compiler-sfc/src/style/cssVars.ts +++ b/packages/compiler-sfc/src/style/cssVars.ts @@ -8,7 +8,7 @@ import { BindingMetadata } from '@vue/compiler-dom' import { SFCDescriptor } from '../parse' -import { escapeSymbolsRE } from '../script/defineProps' +import { escapeSymbolsRE } from '../script/utils' import { PluginCreator } from 'postcss' import hash from 'hash-sum' @@ -32,10 +32,7 @@ function genVarName(id: string, raw: string, isProd: boolean): string { return hash(id + raw) } else { // escape ASCII Punctuation & Symbols - return `${id}-${raw.replace( - escapeSymbolsRE, - s => `\\${s}` - )}` + return `${id}-${raw.replace(escapeSymbolsRE, s => `\\${s}`)}` } }