ts-simple-ast
Version:
TypeScript compiler wrapper for static analysis and code manipulation.
32 lines (31 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var utils_1 = require("../../utils");
var ArrayUtils_1 = require("../ArrayUtils");
function getNodeByNameOrFindFunction(items, nameOrFindFunc) {
var findFunc;
if (typeof nameOrFindFunc === "string")
findFunc = function (dec) { return nodeHasName(dec, nameOrFindFunc); };
else
findFunc = nameOrFindFunc;
return ArrayUtils_1.ArrayUtils.find(items, findFunc);
}
exports.getNodeByNameOrFindFunction = getNodeByNameOrFindFunction;
function nodeHasName(node, name) {
if (node.getNameNode == null)
return false;
var nameNode = node.getNameNode();
if (nameNode == null)
return false;
if (utils_1.TypeGuards.isArrayBindingPattern(nameNode) || utils_1.TypeGuards.isObjectBindingPattern(nameNode))
return nameNode.getElements().some(function (element) { return nodeHasName(element, name); });
var nodeName = node.getName != null ? node.getName() : nameNode.getText();
return nodeName === name;
}
exports.nodeHasName = nodeHasName;
function getNotFoundErrorMessageForNameOrFindFunction(findName, nameOrFindFunction) {
if (typeof nameOrFindFunction === "string")
return "Expected to find " + findName + " named '" + nameOrFindFunction + "'.";
return "Expected to find " + findName + " that matched the provided condition.";
}
exports.getNotFoundErrorMessageForNameOrFindFunction = getNotFoundErrorMessageForNameOrFindFunction;