isReferenced() — vue Function Reference
Architecture documentation for the isReferenced() function in babelUtils.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 57d92963_69b1_85af_8688_7c3e9b8289da["isReferenced()"] fcee39ec_18fe_7a99_fb49_d33db4d055a4["babelUtils.ts"] 57d92963_69b1_85af_8688_7c3e9b8289da -->|defined in| fcee39ec_18fe_7a99_fb49_d33db4d055a4 762f11c0_e86f_83f8_d86f_a9c04b7e5b51["isReferencedIdentifier()"] 762f11c0_e86f_83f8_d86f_a9c04b7e5b51 -->|calls| 57d92963_69b1_85af_8688_7c3e9b8289da style 57d92963_69b1_85af_8688_7c3e9b8289da fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/compiler-sfc/src/babelUtils.ts lines 256–423
function isReferenced(node: Node, parent: Node, grandparent?: Node): boolean {
switch (parent.type) {
// yes: PARENT[NODE]
// yes: NODE.child
// no: parent.NODE
case 'MemberExpression':
case 'OptionalMemberExpression':
if (parent.property === node) {
return !!parent.computed
}
return parent.object === node
case 'JSXMemberExpression':
return parent.object === node
// no: let NODE = init;
// yes: let id = NODE;
case 'VariableDeclarator':
return parent.init === node
// yes: () => NODE
// no: (NODE) => {}
case 'ArrowFunctionExpression':
return parent.body === node
// no: class { #NODE; }
// no: class { get #NODE() {} }
// no: class { #NODE() {} }
// no: class { fn() { return this.#NODE; } }
case 'PrivateName':
return false
// no: class { NODE() {} }
// yes: class { [NODE]() {} }
// no: class { foo(NODE) {} }
case 'ClassMethod':
case 'ClassPrivateMethod':
case 'ObjectMethod':
if (parent.key === node) {
return !!parent.computed
}
return false
// yes: { [NODE]: "" }
// no: { NODE: "" }
// depends: { NODE }
// depends: { key: NODE }
case 'ObjectProperty':
if (parent.key === node) {
return !!parent.computed
}
// parent.value === node
return !grandparent || grandparent.type !== 'ObjectPattern'
// no: class { NODE = value; }
// yes: class { [NODE] = value; }
// yes: class { key = NODE; }
case 'ClassProperty':
if (parent.key === node) {
return !!parent.computed
}
return true
case 'ClassPrivateProperty':
return parent.key !== node
// no: class NODE {}
// yes: class Foo extends NODE {}
case 'ClassDeclaration':
case 'ClassExpression':
return parent.superClass === node
// yes: left = NODE;
// no: NODE = right;
case 'AssignmentExpression':
return parent.right === node
// no: [NODE = foo] = [];
// yes: [foo = NODE] = [];
case 'AssignmentPattern':
return parent.right === node
// no: NODE: for (;;) {}
case 'LabeledStatement':
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does isReferenced() do?
isReferenced() is a function in the vue codebase, defined in packages/compiler-sfc/src/babelUtils.ts.
Where is isReferenced() defined?
isReferenced() is defined in packages/compiler-sfc/src/babelUtils.ts at line 256.
What calls isReferenced()?
isReferenced() is called by 1 function(s): isReferencedIdentifier.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free