UNPKG

@yolkai/nx-schematics

Version:

Extensible Dev Tools for Monorepos: Schematics

69 lines (68 loc) 3.03 kB
"use strict"; 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;