diff --git a/packages/make-angular-cli-faster/src/utilities/migration.ts b/packages/make-angular-cli-faster/src/utilities/migration.ts index 2b07ba2947..31e70422af 100644 --- a/packages/make-angular-cli-faster/src/utilities/migration.ts +++ b/packages/make-angular-cli-faster/src/utilities/migration.ts @@ -1,7 +1,5 @@ import { execSync } from 'child_process'; -import { prompt } from 'enquirer'; -import { lt, lte, major, satisfies } from 'semver'; -import { output } from 'nx/src/utils/output'; +import { lt, lte, major } from 'semver'; import { readModulePackageJson } from 'nx/src/utils/package-json'; import { PackageManagerCommands } from 'nx/src/utils/package-manager'; import { resolvePackageVersion } from './package-manager'; @@ -29,42 +27,16 @@ const latestCompatibleAngularMajorVersion = Math.max( export async function determineMigration( version: string | undefined ): Promise { + if (version) { + return { packageName: '@nrwl/angular', version }; + } + const angularVersion = getInstalledAngularVersion(); const majorAngularVersion = major(angularVersion); latestWorkspaceVersionWithMigration = await resolvePackageVersion( '@nrwl/angular', latestWorkspaceRangeVersionWithMigration ); - - if (version) { - const normalizedVersion = await normalizeVersion(version); - if (lte(normalizedVersion, latestWorkspaceVersionWithMigration)) { - // specified version should use @nrwl/workspace:ng-add - return { packageName: '@nrwl/workspace', version: normalizedVersion }; - } - - // if greater than the latest workspace version with the migration, - // check the versions map for compatibility with Angular - if ( - nxAngularVersionMap[majorAngularVersion] && - satisfies( - normalizedVersion, - nxAngularVersionMap[majorAngularVersion].range - ) - ) { - // there's a match, use @nrwl/angular:ng-add - return { packageName: '@nrwl/angular', version: normalizedVersion }; - } - - // it's not compatible with the currently installed Angular version, - // suggest the latest possible version to use - return await findAndSuggestVersionToUse( - angularVersion, - majorAngularVersion, - version - ); - } - const latestNxCompatibleVersion = await getNxVersionBasedOnInstalledAngularVersion( angularVersion, @@ -101,41 +73,6 @@ export function migrateWorkspace( ); } -async function findAndSuggestVersionToUse( - angularVersion: string, - majorAngularVersion: number, - userSpecifiedVersion: string -): Promise { - const latestNxCompatibleVersion = - await getNxVersionBasedOnInstalledAngularVersion( - angularVersion, - majorAngularVersion - ); - const useSuggestedVersion = await promptForVersion(latestNxCompatibleVersion); - if (useSuggestedVersion) { - // should use @nrwl/workspace:ng-add if the version is less than the - // latest workspace version that has the migration, otherwise use - // @nrwl/angular:ng-add - return { - packageName: lte( - latestNxCompatibleVersion, - latestWorkspaceVersionWithMigration - ) - ? '@nrwl/workspace' - : '@nrwl/angular', - version: latestNxCompatibleVersion, - }; - } - - output.error({ - title: `❌ Cannot proceed with the migration.`, - bodyLines: [ - `The specified Nx version "${userSpecifiedVersion}" is not compatible with the installed Angular version "${angularVersion}".`, - ], - }); - process.exit(1); -} - async function getNxVersionBasedOnInstalledAngularVersion( angularVersion: string, majorAngularVersion: number @@ -162,31 +99,6 @@ async function getNxVersionBasedOnInstalledAngularVersion( return await resolvePackageVersion('@nrwl/angular', 'latest'); } -async function promptForVersion(version: string): Promise { - const { useVersion } = await prompt<{ useVersion: boolean }>([ - { - name: 'useVersion', - message: `The provided version of Nx is not compatible with the installed Angular CLI version. Would you like to use the recommended version "${version}" instead?`, - type: 'confirm', - initial: true, - }, - ]); - - return useVersion; -} - function getInstalledAngularVersion(): string { return readModulePackageJson('@angular/core').packageJson.version; } - -async function normalizeVersion(version: string): Promise { - if ( - version.startsWith('^') || - version.startsWith('~') || - version.split('.').length < 3 - ) { - return await resolvePackageVersion('@nrwl/angular', version); - } - - return version; -}