blob: 6da0fcb1717a11b5f39c2f56e733563ee1b2be41 [file] [log] [blame]
"use strict";
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
Object.defineProperty(exports, "__esModule", { value: true });
const update_tool_1 = require("../../update-tool");
const project_tsconfig_paths_1 = require("../../utils/project-tsconfig-paths");
const attribute_selectors_rule_1 = require("./attribute-selectors-rule");
const class_inheritance_rule_1 = require("./class-inheritance-rule");
const class_names_rule_1 = require("./class-names-rule");
const constructor_signature_rule_1 = require("./constructor-signature-rule");
const css_selectors_rule_1 = require("./css-selectors-rule");
const element_selectors_rule_1 = require("./element-selectors-rule");
const input_names_rule_1 = require("./input-names-rule");
const method_call_arguments_rule_1 = require("./method-call-arguments-rule");
const misc_template_rule_1 = require("./misc-template-rule");
const output_names_rule_1 = require("./output-names-rule");
const property_names_rule_1 = require("./property-names-rule");
/** List of migration rules which run for the CDK update. */
exports.cdkMigrationRules = [
attribute_selectors_rule_1.AttributeSelectorsRule,
class_inheritance_rule_1.ClassInheritanceRule,
class_names_rule_1.ClassNamesRule,
constructor_signature_rule_1.ConstructorSignatureRule,
css_selectors_rule_1.CssSelectorsRule,
element_selectors_rule_1.ElementSelectorsRule,
input_names_rule_1.InputNamesRule,
method_call_arguments_rule_1.MethodCallArgumentsRule,
misc_template_rule_1.MiscTemplateRule,
output_names_rule_1.OutputNamesRule,
property_names_rule_1.PropertyNamesRule,
];
/**
* Creates a Angular schematic rule that runs the upgrade for the
* specified target version.
*/
function createUpgradeRule(targetVersion, extraRules, upgradeData, onMigrationCompleteFn) {
return (tree, context) => {
const logger = context.logger;
const { buildPaths, testPaths } = project_tsconfig_paths_1.getProjectTsConfigPaths(tree);
if (!buildPaths.length && !testPaths.length) {
// We don't want to throw here because it would mean that other migrations in the
// pipeline don't run either. Rather print an error message.
logger.error('Could not find any TypeScript project in the CLI workspace configuration.');
return;
}
// Keep track of all project source files which have been checked/migrated. This is
// necessary because multiple TypeScript projects can contain the same source file and
// we don't want to check these again, as this would result in duplicated failure messages.
const analyzedFiles = new Set();
let hasRuleFailures = false;
for (const tsconfigPath of [...buildPaths, ...testPaths]) {
hasRuleFailures = hasRuleFailures || update_tool_1.runMigrationRules(tree, context.logger, tsconfigPath, targetVersion, [...exports.cdkMigrationRules, ...extraRules], upgradeData, analyzedFiles);
}
if (onMigrationCompleteFn) {
onMigrationCompleteFn(targetVersion, hasRuleFailures);
}
};
}
exports.createUpgradeRule = createUpgradeRule;
//# sourceMappingURL=index.js.map