import * as ESTree from 'estree'; import { ICustomNode } from 'app/interfaces/custom-nodes/ICustomNode'; import { INodeObfuscator } from 'app/interfaces/INodeObfuscator'; import { IOptions } from 'app/interfaces/IOptions'; export abstract class AbstractNodeObfuscator implements INodeObfuscator { /** * @type Map */ protected nodes: Map ; /** * @type {IOptions} */ protected options: IOptions; /** * @param nodes * @param options */ constructor(nodes: Map , options: IOptions) { this.nodes = nodes; this.options = options; } /** * @param node * @param parentNode */ public abstract obfuscateNode (node: ESTree.Node, parentNode?: ESTree.Node): void; }