@nodesecure/js-x-ray
Version:
JavaScript AST XRay analysis
24 lines • 885 B
TypeScript
import type { ESTree } from "meriyah";
export type NodeCounterFilterCallback<T extends ESTree.Node> = (node: T) => boolean;
export type NodeCounterMatchCallback<T extends ESTree.Node> = (node: T, nc: NodeCounter<T>) => void;
export interface NodeCounterOptions<T extends ESTree.Node> {
name?: string;
filter?: NodeCounterFilterCallback<T>;
match?: NodeCounterMatchCallback<T>;
}
export declare class NodeCounter<T extends ESTree.Node = ESTree.Node> {
#private;
type: string;
name: string;
lookup: string | null;
/**
* @example
* new NodeCounter("FunctionDeclaration");
* new NodeCounter("VariableDeclaration[kind]");
*/
constructor(type: string, options?: NodeCounterOptions<T>);
get count(): number;
get properties(): Record<string, number>;
walk(node: ESTree.Node): void;
}
//# sourceMappingURL=NodeCounter.d.ts.map