| "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 schematics_1 = require("@angular-devkit/schematics"); |
| const target_version_1 = require("./target-version"); |
| /** |
| * Gets the changes for a given target version from the specified version changes object. |
| * |
| * For readability and a good overview of breaking changes, the version change data always |
| * includes the related Pull Request link. Since this data is not needed when performing the |
| * upgrade, this unused data can be removed and the changes data can be flattened into an |
| * easy iterable array. |
| */ |
| function getChangesForTarget(target, data) { |
| if (!data) { |
| throw new schematics_1.SchematicsException(`No data could be found for target version: ${target_version_1.TargetVersion[target]}`); |
| } |
| if (!data[target]) { |
| return []; |
| } |
| return data[target].reduce((result, prData) => result.concat(prData.changes), []); |
| } |
| exports.getChangesForTarget = getChangesForTarget; |
| /** |
| * Gets all changes from the specified version changes object. This is helpful in case a migration |
| * rule does not distinguish data based on the target version, but for readability the |
| * upgrade data is separated for each target version. |
| */ |
| function getAllChanges(data) { |
| return Object.keys(data) |
| .map(targetVersion => getChangesForTarget(targetVersion, data)) |
| .reduce((result, versionData) => result.concat(versionData), []); |
| } |
| exports.getAllChanges = getAllChanges; |
| //# sourceMappingURL=version-changes.js.map |