MCPcopy Create free account
hub / github.com/angular/angular / CombinedRecursiveAstVisitor

Class CombinedRecursiveAstVisitor

packages/compiler/src/combined_visitor.ts:16–164  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14 * Useful for cases where every single node needs to be visited.
15 */
16export class CombinedRecursiveAstVisitor extends RecursiveAstVisitor implements t.RecursiveVisitor {
17 override visit(node: AST | t.Node): void {
18 if (node instanceof ASTWithSource) {
19 this.visit(node.ast);
20 } else {
21 node.visit(this);
22 }
23 }
24
25 visitElement(element: t.Element): void {
26 this.visitAllTemplateNodes(element.attributes);
27 this.visitAllTemplateNodes(element.inputs);
28 this.visitAllTemplateNodes(element.outputs);
29 this.visitAllTemplateNodes(element.directives);
30 this.visitAllTemplateNodes(element.references);
31 this.visitAllTemplateNodes(element.children);
32 }
33
34 visitTemplate(template: t.Template): void {
35 this.visitAllTemplateNodes(template.attributes);
36 this.visitAllTemplateNodes(template.inputs);
37 this.visitAllTemplateNodes(template.outputs);
38 this.visitAllTemplateNodes(template.directives);
39 this.visitAllTemplateNodes(template.templateAttrs);
40 this.visitAllTemplateNodes(template.variables);
41 this.visitAllTemplateNodes(template.references);
42 this.visitAllTemplateNodes(template.children);
43 }
44
45 visitContent(content: t.Content): void {
46 this.visitAllTemplateNodes(content.children);
47 }
48
49 visitContentBlock(block: t.ContentBlock): void {
50 this.visitAllTemplateNodes(block.children);
51 }
52
53 visitBoundAttribute(attribute: t.BoundAttribute): void {
54 this.visit(attribute.value);
55 }
56
57 visitBoundEvent(attribute: t.BoundEvent): void {
58 this.visit(attribute.handler);
59 }
60
61 visitBoundText(text: t.BoundText): void {
62 this.visit(text.value);
63 }
64
65 visitIcu(icu: t.Icu): void {
66 Object.keys(icu.vars).forEach((key) => this.visit(icu.vars[key]));
67 Object.keys(icu.placeholders).forEach((key) => this.visit(icu.placeholders[key]));
68 }
69
70 visitDeferredBlock(deferred: t.DeferredBlock): void {
71 deferred.visitAll(this);
72 }
73

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected