Skip to content

⬅️ Back to Table of Contents

📄 Visitor

📊 Analysis Summary

Metric Count
🔧 Functions 1
🧱 Classes 1
📦 Imports 6
🔄 Re-exports 1
📐 Interfaces 1

📚 Table of Contents

🛠️ File Location:

📂 packages/scope-manager/src/referencer/Visitor.ts

📦 Imports

Name Source
TSESTree @typescript-eslint/types
PatternVisitorCallback ./PatternVisitor
PatternVisitorOptions ./PatternVisitor
VisitorOptions ./VisitorBase
PatternVisitor ./PatternVisitor
VisitorBase ./VisitorBase

Re-exports

Type Source Exported Names
named ./VisitorBase VisitorBase, VisitorOptions

Functions

Visitor.visitPattern(node: TSESTree.Node, callback: PatternVisitorCallback, options: VisitPatternOptions): void

Parameters:

  • node TSESTree.Node
  • callback PatternVisitorCallback
  • options VisitPatternOptions

Returns: void

Calls:

  • visitor.visit
  • visitor.rightHandNodes.forEach

Internal Comments:

// Call the callback at left hand identifier nodes, and Collect right hand nodes. (x2)
// Process the right hand nodes recursively.

Code
protected visitPattern(
    node: TSESTree.Node,
    callback: PatternVisitorCallback,
    options: VisitPatternOptions = { processRightHandNodes: false },
  ): void {
    // Call the callback at left hand identifier nodes, and Collect right hand nodes.
    const visitor = new PatternVisitor(this.#options, node, callback);

    visitor.visit(node);

    // Process the right hand nodes recursively.
    if (options.processRightHandNodes) {
      visitor.rightHandNodes.forEach(this.visit, this);
    }
  }

Classes

Visitor

Extends: VisitorBase

Class Code
export class Visitor extends VisitorBase {
  readonly #options: VisitorOptions;
  constructor(optionsOrVisitor: Visitor | VisitorOptions) {
    super(
      optionsOrVisitor instanceof Visitor
        ? optionsOrVisitor.#options
        : optionsOrVisitor,
    );

    this.#options =
      optionsOrVisitor instanceof Visitor
        ? optionsOrVisitor.#options
        : optionsOrVisitor;
  }

  protected visitPattern(
    node: TSESTree.Node,
    callback: PatternVisitorCallback,
    options: VisitPatternOptions = { processRightHandNodes: false },
  ): void {
    // Call the callback at left hand identifier nodes, and Collect right hand nodes.
    const visitor = new PatternVisitor(this.#options, node, callback);

    visitor.visit(node);

    // Process the right hand nodes recursively.
    if (options.processRightHandNodes) {
      visitor.rightHandNodes.forEach(this.visit, this);
    }
  }
}

Methods (1) — full entries under Functions

Method Signature
visitPattern (node: TSESTree.Node, callback: PatternVisitorCallback, options: VisitPatternOptions): void

Interfaces

VisitPatternOptions

Interface Code
interface VisitPatternOptions extends PatternVisitorOptions {
  processRightHandNodes?: boolean;
}

Properties

Name Type Optional Description
processRightHandNodes boolean not shown

Generated by Syntax Scribe