blob: 1f79373b2e2a6153faa774cdf13875705847ea29 [file] [log] [blame]
/**
* @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
*/
import { TargetVersion } from './target-version';
export declare type VersionChanges<T> = {
[target in TargetVersion]?: ReadableChange<T>[];
};
export declare type ReadableChange<T> = {
pr: string;
changes: T[];
};
/** Conditional type that unwraps the value of a version changes type. */
export declare type ValueOfChanges<T> = T extends VersionChanges<infer X> ? X : null;
/**
* 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.
*/
export declare function getChangesForTarget<T>(target: TargetVersion, data: VersionChanges<T>): T[];
/**
* 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.
*/
export declare function getAllChanges<T>(data: VersionChanges<T>): T[];