48 lines
1.6 KiB
Plaintext
48 lines
1.6 KiB
Plaintext
export = CodePathAnalyzer;
|
|
|
|
interface EventGenerator {
|
|
emitter: import('node:events').EventEmitter;
|
|
enterNode(node: import('eslint').Rule.Node): void;
|
|
leaveNode(node: import('eslint').Rule.Node): void;
|
|
}
|
|
|
|
/**
|
|
* The class to analyze code paths.
|
|
* This class implements the EventGenerator interface.
|
|
*/
|
|
declare class CodePathAnalyzer {
|
|
/**
|
|
* @param {EventGenerator} eventGenerator An event generator to wrap.
|
|
*/
|
|
constructor(eventGenerator: EventGenerator);
|
|
original: EventGenerator;
|
|
emitter: any;
|
|
codePath: any;
|
|
idGenerator: IdGenerator;
|
|
currentNode: any;
|
|
/**
|
|
* This is called on a code path looped.
|
|
* Then this raises a looped event.
|
|
* @param {CodePathSegment} fromSegment A segment of prev.
|
|
* @param {CodePathSegment} toSegment A segment of next.
|
|
* @returns {void}
|
|
*/
|
|
onLooped(fromSegment: CodePathSegment, toSegment: CodePathSegment): void;
|
|
/**
|
|
* Does the process to enter a given AST node.
|
|
* This updates state of analysis and calls `enterNode` of the wrapped.
|
|
* @param {ASTNode} node A node which is entering.
|
|
* @returns {void}
|
|
*/
|
|
enterNode(node: import('eslint').Rule.Node): void;
|
|
/**
|
|
* Does the process to leave a given AST node.
|
|
* This updates state of analysis and calls `leaveNode` of the wrapped.
|
|
* @param {ASTNode} node A node which is leaving.
|
|
* @returns {void}
|
|
*/
|
|
leaveNode(node: import('eslint').Rule.Node): void;
|
|
}
|
|
import IdGenerator = require("./id-generator");
|
|
import CodePathSegment = require("./code-path-segment");
|