UNPKG

835 BPlain TextView Raw
1/**
2 * Enum describing types of version differences
3 */
4import { Version } from './types';
5
6export enum VersionUpgrade {
7 NONE,
8 PATCH,
9 MINOR,
10 MAJOR,
11}
12
13/**
14 * Return the upgrade type from the base version to the update version.
15 * Note that downgrades and equivalent versions are both treated as `NONE`.
16 * @param base base list
17 * @param update update to the list
18 */
19export function getVersionUpgrade(
20 base: Version,
21 update: Version
22): VersionUpgrade {
23 if (update.major > base.major) {
24 return VersionUpgrade.MAJOR;
25 }
26 if (update.major < base.major) {
27 return VersionUpgrade.NONE;
28 }
29 if (update.minor > base.minor) {
30 return VersionUpgrade.MINOR;
31 }
32 if (update.minor < base.minor) {
33 return VersionUpgrade.NONE;
34 }
35 return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;
36}