Skip to content

Commit

Permalink
fix(angular): set correct angular backward compat versions (#23304)
Browse files Browse the repository at this point in the history
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
  • Loading branch information
leosvelperez committed May 20, 2024
1 parent a21493d commit 09b85d4
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 22 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { addDependenciesToPackageJson, type Tree } from '@nx/devkit';
import { gte } from 'semver';
import type { PackageCompatVersions } from '../../../utils/backward-compatible-versions';
import type { VersionMap } from '../../../utils/backward-compatible-versions';
import {
getInstalledAngularVersionInfo,
getInstalledPackageVersionInfo,
Expand Down Expand Up @@ -35,10 +35,11 @@ export function addDependencies(
} else {
dependencies['@nguniversal/express-engine'] =
getInstalledPackageVersionInfo(tree, '@nguniversal/express-engine')
?.version ?? (pkgVersions as PackageCompatVersions).ngUniversalVersion;
?.version ??
(pkgVersions as VersionMap['angularV16']).ngUniversalVersion;
devDependencies['@nguniversal/builders'] =
getInstalledPackageVersionInfo(tree, '@nguniversal/builders')?.version ??
(pkgVersions as PackageCompatVersions).ngUniversalVersion;
(pkgVersions as VersionMap['angularV16']).ngUniversalVersion;
}

addDependenciesToPackageJson(tree, dependencies, devDependencies);
Expand Down
40 changes: 24 additions & 16 deletions packages/angular/src/utils/backward-compatible-versions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,31 @@ import * as latestVersions from './versions';

type SupportedVersions = 'angularV16' | 'angularV17';

export type LatestPackageVersionNames = Exclude<
type LatestPackageVersionNames = Exclude<
keyof typeof latestVersions,
'nxVersion'
>;
export type CompatPackageVersionNames =
type CompatPackageVersionNames =
| LatestPackageVersionNames
// Can be removed when dropping support for Angular v16
| 'ngUniversalVersion';

export type PackageVersionNames =
| LatestPackageVersionNames
| CompatPackageVersionNames;

export type VersionMap = {
angularV16: Record<CompatPackageVersionNames, string>;
angularV17: Record<
Exclude<CompatPackageVersionNames, 'ngUniversalVersion'>,
string
>;
};

export type PackageLatestVersions = Record<LatestPackageVersionNames, string>;
export type PackageCompatVersions = Record<CompatPackageVersionNames, string>;
export type PackageCompatVersions = VersionMap[SupportedVersions];

export const backwardCompatibleVersions: Record<
SupportedVersions,
PackageCompatVersions
> = {
export const backwardCompatibleVersions: VersionMap = {
angularV16: {
angularVersion: '~16.2.0',
angularDevkitVersion: '~16.2.0',
Expand Down Expand Up @@ -46,29 +55,28 @@ export const backwardCompatibleVersions: Record<
jsoncEslintParserVersion: '^2.1.0',
},
angularV17: {
angularVersion: '~16.2.0',
angularDevkitVersion: '~16.2.0',
ngPackagrVersion: '~16.2.0',
ngrxVersion: '~16.0.0',
angularVersion: '~17.3.0',
angularDevkitVersion: '~17.3.0',
ngPackagrVersion: '~17.3.0',
ngrxVersion: '~17.0.0',
rxjsVersion: '~7.8.0',
zoneJsVersion: '~0.13.0',
zoneJsVersion: '~0.14.3',
angularJsVersion: '1.7.9',
tsLibVersion: '^2.3.0',
ngUniversalVersion: '~16.2.0',
corsVersion: '~2.8.5',
typesCorsVersion: '~2.8.5',
expressVersion: '~4.18.2',
typesExpressVersion: '4.17.14',
browserSyncVersion: '^3.0.0',
moduleFederationNodeVersion: '~1.0.5',
angularEslintVersion: '~16.0.0',
angularEslintVersion: '~17.3.0',
tailwindVersion: '^3.0.2',
postcssVersion: '^8.4.5',
postcssUrlVersion: '~10.1.3',
autoprefixerVersion: '^10.4.0',
tsNodeVersion: '10.9.1',
jestPresetAngularVersion: '~13.1.0',
typesNodeVersion: '16.11.7',
jestPresetAngularVersion: '~14.0.3',
typesNodeVersion: '18.16.9',
jasmineMarblesVersion: '^0.9.2',
jsoncEslintParserVersion: '^2.1.0',
},
Expand Down
5 changes: 2 additions & 3 deletions packages/angular/src/utils/version-utils.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import { coerce, major } from 'semver';
import type {
CompatPackageVersionNames,
LatestPackageVersionNames,
PackageCompatVersions,
PackageLatestVersions,
PackageVersionNames,
} from './backward-compatible-versions';
import { backwardCompatibleVersions } from './backward-compatible-versions';
import * as versions from './versions';
import { angularVersion } from './versions';

export function getPkgVersionForAngularMajorVersion(
pkgVersionName: LatestPackageVersionNames | CompatPackageVersionNames,
pkgVersionName: PackageVersionNames,
angularMajorVersion: number
): string {
return angularMajorVersion < major(coerce(angularVersion))
Expand Down

0 comments on commit 09b85d4

Please sign in to comment.