UNPKG

a2r

Version:
30 lines (29 loc) 1.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const typescript_1 = __importDefault(require("typescript")); const telemetry_1 = require("@a2r/telemetry"); const getFunctionName_1 = __importDefault(require("./getFunctionName")); const getMainMethodNode = (nodes, mainMethodName) => { if (!mainMethodName) { telemetry_1.out.warn('Got no main method name, returning null as main method node'); return null; } let mainMethod = null; for (let i = 0, l = nodes.length; i < l && !mainMethod; i += 1) { const node = nodes[i]; if (typescript_1.default.isFunctionDeclaration(node) || typescript_1.default.isArrowFunction(node)) { const functionName = (0, getFunctionName_1.default)(node); if (functionName === mainMethodName) { mainMethod = node; } } else if (!typescript_1.default.isJSDocCommentContainingNode(node)) { mainMethod = getMainMethodNode(node.getChildren(), mainMethodName); } } return mainMethod; }; exports.default = getMainMethodNode;