eslint-plugin-n
Version:
Additional ESLint's rules for Node.js
48 lines (45 loc) • 1.59 kB
TypeScript
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");