From 02962638045e7c8cff956d96b555d05499ada0bc Mon Sep 17 00:00:00 2001 From: sanex3339 Date: Tue, 24 May 2016 17:46:32 +0300 Subject: [PATCH] refactoring --- src/NodeUtils.js | 15 +++------------ src/NodeUtils.ts | 32 ++++---------------------------- 2 files changed, 7 insertions(+), 40 deletions(-) diff --git a/src/NodeUtils.js b/src/NodeUtils.js index ba4a695f..8b66ed30 100644 --- a/src/NodeUtils.js +++ b/src/NodeUtils.js @@ -16,6 +16,9 @@ class NodeUtils { return node; } static getBlockScopeOfNode(node, depth = 0) { + if (!node.parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } if (node.parentNode.type === NodeType_1.NodeType.Program) { return node.parentNode; } @@ -30,18 +33,6 @@ class NodeUtils { } return node; } - static getParentNodeWithType(node, types, limitNodeTypes = [], depth = 0) { - if (node.parentNode.type === NodeType_1.NodeType.Program || Utils_1.Utils.arrayContains(limitNodeTypes, node.parentNode.type)) { - return node.parentNode; - } - if (!Utils_1.Utils.arrayContains(types, node.parentNode.type)) { - return NodeUtils.getParentNodeWithType(node.parentNode, types, limitNodeTypes, depth); - } - if (depth > 0) { - return NodeUtils.getParentNodeWithType(node.parentNode, types, limitNodeTypes, --depth); - } - return node.parentNode; - } static insertNodeAtIndex(blockScopeBody, node, index) { if (!NodeUtils.validateNode(node)) { return; diff --git a/src/NodeUtils.ts b/src/NodeUtils.ts index 24c41bcf..6f2bb7e1 100644 --- a/src/NodeUtils.ts +++ b/src/NodeUtils.ts @@ -57,6 +57,10 @@ export class NodeUtils { * @returns {INode} */ public static getBlockScopeOfNode (node: INode, depth: number = 0): BlockScopeNode { + if (!node.parentNode) { + throw new ReferenceError('`parentNode` property of given node is `undefined`'); + } + if (node.parentNode.type === NodeType.Program) { return node.parentNode; } @@ -76,34 +80,6 @@ export class NodeUtils { return node; // blocks statement of scopeNodes } - /** - * @param node - * @param types - * @param limitNodeTypes - * @param depth - * @returns {INode} - */ - public static getParentNodeWithType ( - node: INode, - types: string[], - limitNodeTypes: string[] = [], - depth: number = 0 - ): INode { - if (node.parentNode.type === NodeType.Program || Utils.arrayContains(limitNodeTypes, node.parentNode.type)) { - return node.parentNode; - } - - if (!Utils.arrayContains(types, node.parentNode.type)) { - return NodeUtils.getParentNodeWithType(node.parentNode, types, limitNodeTypes, depth); - } - - if (depth > 0) { - return NodeUtils.getParentNodeWithType(node.parentNode, types, limitNodeTypes, --depth); - } - - return node.parentNode; - } - /** * @param blockScopeBody * @param node