prefixIdentifiers() — vue Function Reference
Architecture documentation for the prefixIdentifiers() function in prefixIdentifiers.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 3c98115b_726f_620d_0dc3_3d696ff8a7c2["prefixIdentifiers()"] 472584c7_15d2_7ac4_2300_5c0fac3bab21["prefixIdentifiers.ts"] 3c98115b_726f_620d_0dc3_3d696ff8a7c2 -->|defined in| 472584c7_15d2_7ac4_2300_5c0fac3bab21 ec948229_cae8_141c_0df4_eb2f1503ddda["actuallyCompile()"] ec948229_cae8_141c_0df4_eb2f1503ddda -->|calls| 3c98115b_726f_620d_0dc3_3d696ff8a7c2 ff14d2b7_217f_7b2c_a8cf_e648b225c4b8["genCssVarsCode()"] ff14d2b7_217f_7b2c_a8cf_e648b225c4b8 -->|calls| 3c98115b_726f_620d_0dc3_3d696ff8a7c2 484ec320_49bc_b969_d86d_edc246af3234["walkIdentifiers()"] 3c98115b_726f_620d_0dc3_3d696ff8a7c2 -->|calls| 484ec320_49bc_b969_d86d_edc246af3234 95cbb28a_63b1_cc46_f71a_5a60cb57f576["isStaticProperty()"] 3c98115b_726f_620d_0dc3_3d696ff8a7c2 -->|calls| 95cbb28a_63b1_cc46_f71a_5a60cb57f576 style 3c98115b_726f_620d_0dc3_3d696ff8a7c2 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/compiler-sfc/src/prefixIdentifiers.ts lines 19–82
export function prefixIdentifiers(
source: string,
isFunctional = false,
isTS = false,
babelOptions: ParserOptions = {},
bindings?: BindingMetadata
) {
const s = new MagicString(source)
const plugins: ParserPlugin[] = [
...(isTS ? (['typescript'] as const) : []),
...(babelOptions?.plugins || [])
]
const ast = parseExpression(source, {
...babelOptions,
plugins
})
const isScriptSetup = bindings && bindings.__isScriptSetup !== false
walkIdentifiers(
ast,
(ident, parent) => {
const { name } = ident
if (doNotPrefix(name)) {
return
}
let prefix = `_vm.`
if (isScriptSetup) {
const type = bindings[name]
if (type && type.startsWith('setup')) {
prefix = `_setup.`
}
}
if (isStaticProperty(parent) && parent.shorthand) {
// property shorthand like { foo }, we need to add the key since
// we rewrite the value
// { foo } -> { foo: _vm.foo }
s.appendLeft(ident.end!, `: ${prefix}${name}`)
} else {
s.prependRight(ident.start!, prefix)
}
},
node => {
if (node.type === 'WithStatement') {
s.remove(node.start!, node.body.start! + 1)
s.remove(node.end! - 1, node.end!)
if (!isFunctional) {
s.prependRight(
node.start!,
`var _vm=this,_c=_vm._self._c${
isScriptSetup ? `,_setup=_vm._self._setupProxy;` : `;`
}`
)
}
}
}
)
return s.toString()
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does prefixIdentifiers() do?
prefixIdentifiers() is a function in the vue codebase, defined in packages/compiler-sfc/src/prefixIdentifiers.ts.
Where is prefixIdentifiers() defined?
prefixIdentifiers() is defined in packages/compiler-sfc/src/prefixIdentifiers.ts at line 19.
What does prefixIdentifiers() call?
prefixIdentifiers() calls 2 function(s): isStaticProperty, walkIdentifiers.
What calls prefixIdentifiers()?
prefixIdentifiers() is called by 2 function(s): actuallyCompile, genCssVarsCode.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free