a2r
Version:
A2R Framework
30 lines (29 loc) • 1.25 kB
JavaScript
;
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;