@yolkai/nx-schematics
Version:
69 lines (68 loc) • 3.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ts = require("typescript");
function findFunctionCallExpressionStatement(nodes, functionName) {
return nodes.find(node => ts.isExpressionStatement(node) &&
ts.isCallExpression(node.expression) &&
ts.isIdentifier(node.expression.expression) &&
node.expression.expression.escapedText === functionName);
}
exports.findFunctionCallExpressionStatement = findFunctionCallExpressionStatement;
function findFunctionCalls(sourceFile, functionName) {
return sourceFile.statements.filter(statement => {
if (!ts.isVariableStatement(statement)) {
return false;
}
const declarations = statement.declarationList.declarations;
return declarations.some(declaration => {
if (!ts.isCallExpression(declaration.initializer) ||
!ts.isIdentifier(declaration.initializer.expression)) {
return false;
}
return declaration.initializer.expression.text === functionName;
});
});
}
exports.findFunctionCalls = findFunctionCalls;
function findRequireStatement(nodes) {
return nodes.find(node => {
if (!ts.isVariableStatement(node)) {
return false;
}
const requireDeclaration = node.declarationList.declarations.find(declaration => {
if (!ts.isCallExpression(declaration.initializer)) {
return false;
}
const callExpression = declaration.initializer;
if (ts.isIdentifier(callExpression.expression) &&
callExpression.expression.escapedText === 'require' &&
ts.isStringLiteral(callExpression.arguments[0])) {
const argument = callExpression.arguments[0];
return (argument.text === '@yolkai/nx-schematics/src/utils/cli-config-utils');
}
return false;
});
return !!requireDeclaration;
});
}
exports.findRequireStatement = findRequireStatement;
function findSpecDeclaration(nodes) {
return nodes.find(node => ts.isPropertyAssignment(node) &&
ts.isIdentifier(node.name) &&
node.name.text === 'specs' &&
ts.isArrayLiteralExpression(node.initializer));
}
exports.findSpecDeclaration = findSpecDeclaration;
function findTsNodeRegisterExpression(nodes) {
return nodes.find(node => ts.isCallExpression(node) &&
ts.isPropertyAccessExpression(node.expression) &&
ts.isIdentifier(node.expression.name) &&
node.expression.name.text === 'register' &&
ts.isCallExpression(node.expression.expression) &&
ts.isIdentifier(node.expression.expression.expression) &&
node.expression.expression.expression.text === 'require' &&
ts.isStringLiteral(node.expression.expression.arguments[0]) &&
node.expression.expression.arguments[0].text ===
'ts-node');
}
exports.findTsNodeRegisterExpression = findTsNodeRegisterExpression;