From 7bdc0de86a103168abf3125219ec80cc5803c8ad Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 7 Oct 2020 13:25:25 -0400 Subject: [PATCH] refactor(@angular-devkit/build-angular): remove unneeded 10.1 localize checks Now that 11.0 is the minimum supported version, the 10.1 support checks for the `@angular/localize` package can be removed. --- .../build_angular/src/extract-i18n/index.ts | 11 ++----- .../build_angular/src/utils/process-bundle.ts | 33 ------------------- .../legacy-cli/e2e/tests/i18n/extract-ivy.ts | 9 +---- 3 files changed, 4 insertions(+), 49 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/extract-i18n/index.ts b/packages/angular_devkit/build_angular/src/extract-i18n/index.ts index 1e3c6a1fbaaf..71a59633ba32 100644 --- a/packages/angular_devkit/build_angular/src/extract-i18n/index.ts +++ b/packages/angular_devkit/build_angular/src/extract-i18n/index.ts @@ -15,7 +15,6 @@ import { JsonObject } from '@angular-devkit/core'; import type { ɵParsedMessage as LocalizeMessage } from '@angular/localize'; import * as fs from 'fs'; import * as path from 'path'; -import { gte as semverGte } from 'semver'; import * as webpack from 'webpack'; import { Schema as BrowserBuilderOptions } from '../browser/schema'; import { ExecutionTransformer } from '../transforms'; @@ -212,16 +211,12 @@ export async function execute( ); if (usingIvy) { - let validLocalizePackage = false; try { - const { version: localizeVersion } = require('@angular/localize/package.json'); - validLocalizePackage = semverGte(localizeVersion, '10.1.0-next.0', { includePrerelease: true }); - } catch {} - - if (!validLocalizePackage) { + require.resolve('@angular/localize'); + } catch { return { success: false, - error: `Ivy extraction requires the '@angular/localize' package version 10.1.0 or higher.`, + error: `Ivy extraction requires the '@angular/localize' package.`, }; } } diff --git a/packages/angular_devkit/build_angular/src/utils/process-bundle.ts b/packages/angular_devkit/build_angular/src/utils/process-bundle.ts index 080f694e055a..9cf371ecd535 100644 --- a/packages/angular_devkit/build_angular/src/utils/process-bundle.ts +++ b/packages/angular_devkit/build_angular/src/utils/process-bundle.ts @@ -19,7 +19,6 @@ import templateBuilder from '@babel/template'; import { createHash } from 'crypto'; import * as fs from 'fs'; import * as path from 'path'; -import { lt as semverLt } from 'semver'; import { RawSourceMap, SourceMapConsumer, SourceMapGenerator } from 'source-map'; import { minify } from 'terser'; import * as v8 from 'v8'; @@ -884,26 +883,10 @@ function findLocalizePositions( return positions; } -// TODO: Remove this for v11. -// This check allows the CLI to support both FW 10.0 and 10.1 -let localizeOld: boolean | undefined; - function unwrapTemplateLiteral( path: NodePath, utils: LocalizeUtilities, ): [TemplateStringsArray, types.Expression[]] { - if (localizeOld === undefined) { - const { version: localizeVersion } = require('@angular/localize/package.json'); - localizeOld = semverLt(localizeVersion, '10.1.0-rc.0', { includePrerelease: true }); - } - - if (localizeOld) { - // tslint:disable-next-line: no-any - const messageParts = utils.unwrapMessagePartsFromTemplateLiteral(path.node.quasi.quasis as any); - - return [(messageParts as unknown) as TemplateStringsArray, path.node.quasi.expressions]; - } - const [messageParts] = utils.unwrapMessagePartsFromTemplateLiteral( path.get('quasi').get('quasis'), ); @@ -916,22 +899,6 @@ function unwrapLocalizeCall( path: NodePath, utils: LocalizeUtilities, ): [TemplateStringsArray, types.Expression[]] { - if (localizeOld === undefined) { - const { version: localizeVersion } = require('@angular/localize/package.json'); - localizeOld = semverLt(localizeVersion, '10.1.0-rc.0', { includePrerelease: true }); - } - - if (localizeOld) { - const messageParts = utils.unwrapMessagePartsFromLocalizeCall(path); - // tslint:disable-next-line: no-any - const expressions = utils.unwrapSubstitutionsFromLocalizeCall(path.node as any); - - return [ - (messageParts as unknown) as TemplateStringsArray, - (expressions as unknown) as types.Expression[], - ]; - } - const [messageParts] = utils.unwrapMessagePartsFromLocalizeCall(path); const [expressions] = utils.unwrapSubstitutionsFromLocalizeCall(path); diff --git a/tests/legacy-cli/e2e/tests/i18n/extract-ivy.ts b/tests/legacy-cli/e2e/tests/i18n/extract-ivy.ts index fc54b94d16fb..b31d61baa374 100644 --- a/tests/legacy-cli/e2e/tests/i18n/extract-ivy.ts +++ b/tests/legacy-cli/e2e/tests/i18n/extract-ivy.ts @@ -21,17 +21,10 @@ export default async function() { // Should fail with --ivy flag if `@angular/localize` is missing const { message: message1 } = await expectToFail(() => ng('xi18n')); - if (!message1.includes(`Ivy extraction requires the '@angular/localize' package version 10.1.0 or higher.`)) { + if (!message1.includes(`Ivy extraction requires the '@angular/localize' package.`)) { throw new Error('Expected localize package error message when missing'); } - // Should fail with --ivy flag if `@angular/localize` is wrong version - await npm('install', '@angular/localize@9'); - const { message: message2 } = await expectToFail(() => ng('xi18n', '--ivy')); - if (!message2.includes(`Ivy extraction requires the '@angular/localize' package version 10.1.0 or higher.`)) { - throw new Error('Expected localize package error message when wrong version'); - } - // Install correct version let localizeVersion = '@angular/localize@' + readNgVersion(); if (getGlobalVariable('argv')['ng-snapshots']) {