UNPKG

ts-simple-ast

Version:

TypeScript compiler wrapper for AST navigation and code generation.

28 lines (26 loc) 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const areNodesEqual_1 = require("./../areNodesEqual"); const StraightReplacementNodeHandler_1 = require("./StraightReplacementNodeHandler"); /** * Replacement handler that tries to find the parents. */ class ParentFinderReplacementNodeHandler extends StraightReplacementNodeHandler_1.StraightReplacementNodeHandler { constructor(compilerFactory, parentNodeHandler, changingParent) { super(compilerFactory); this.parentNodeHandler = parentNodeHandler; this.changingParent = changingParent; this.foundParent = false; this.changingParentParent = this.changingParent.getParentSyntaxList() || this.changingParent.getParent(); } handleNode(currentNode, newNode) { if (!this.foundParent && areNodesEqual_1.areNodesEqual(newNode, this.changingParent) && areNodesEqual_1.areNodesEqual(newNode.getParentSyntaxList() || newNode.getParent(), this.changingParentParent)) { this.foundParent = true; // don't bother checking for the parent once it's found this.parentNodeHandler.handleNode(currentNode, newNode); } else super.handleNode(currentNode, newNode); } } exports.ParentFinderReplacementNodeHandler = ParentFinderReplacementNodeHandler; //# sourceMappingURL=ParentFinderReplacementNodeHandler.js.map