diff --git a/packages/angular_devkit/architect_cli/BUILD.bazel b/packages/angular_devkit/architect_cli/BUILD.bazel index 463753173ad3..f07822157ac8 100644 --- a/packages/angular_devkit/architect_cli/BUILD.bazel +++ b/packages/angular_devkit/architect_cli/BUILD.bazel @@ -15,15 +15,13 @@ ts_project( name = "architect_cli", srcs = [ "bin/architect.ts", - ] + glob(["src/**/*.ts"]), + ], deps = [ ":node_modules/@angular-devkit/architect", ":node_modules/@angular-devkit/core", ":node_modules/ansi-colors", - ":node_modules/progress", ":node_modules/yargs-parser", "//:node_modules/@types/node", - "//:node_modules/@types/progress", "//:node_modules/@types/yargs-parser", ], ) diff --git a/packages/angular_devkit/architect_cli/bin/architect.ts b/packages/angular_devkit/architect_cli/bin/architect.ts index 8cba7b4c11a7..e2c8a6731f29 100644 --- a/packages/angular_devkit/architect_cli/bin/architect.ts +++ b/packages/angular_devkit/architect_cli/bin/architect.ts @@ -7,7 +7,7 @@ * found in the LICENSE file at https://angular.dev/license */ -import { Architect, BuilderInfo, BuilderProgressState, Target } from '@angular-devkit/architect'; +import { Architect } from '@angular-devkit/architect'; import { WorkspaceNodeModulesArchitectHost } from '@angular-devkit/architect/node'; import { JsonValue, json, logging, schema, tags, workspaces } from '@angular-devkit/core'; import { NodeJsSyncHost, createConsoleLogger } from '@angular-devkit/core/node'; @@ -15,7 +15,6 @@ import * as ansiColors from 'ansi-colors'; import { existsSync } from 'node:fs'; import * as path from 'node:path'; import yargsParser, { camelCase, decamelize } from 'yargs-parser'; -import { MultiProgressBar } from '../src/progress'; function findUp(names: string | string[], from: string) { if (!Array.isArray(names)) { @@ -59,16 +58,6 @@ function usage(logger: logging.Logger, exitCode = 0): never { return process.exit(exitCode); } -function _targetStringFromTarget({ project, target, configuration }: Target) { - return `${project}:${target}${configuration !== undefined ? ':' + configuration : ''}`; -} - -interface BarInfo { - status?: string; - builder: BuilderInfo; - target?: Target; -} - // Create a separate instance to prevent unintended global changes to the color configuration const colors = ansiColors.create(); @@ -106,47 +95,6 @@ async function _executeTarget( } const run = await architect.scheduleTarget(targetSpec, camelCasedOptions, { logger }); - const bars = new MultiProgressBar(':name :bar (:current/:total) :status'); - - run.progress.subscribe((update) => { - const data = bars.get(update.id) || { - id: update.id, - builder: update.builder, - target: update.target, - status: update.status || '', - name: ( - (update.target ? _targetStringFromTarget(update.target) : update.builder.name) + - ' '.repeat(80) - ).substring(0, 40), - }; - - if (update.status !== undefined) { - data.status = update.status; - } - - switch (update.state) { - case BuilderProgressState.Error: - data.status = 'Error: ' + update.error; - bars.update(update.id, data); - break; - - case BuilderProgressState.Stopped: - data.status = 'Done.'; - bars.complete(update.id); - bars.update(update.id, data, update.total, update.total); - break; - - case BuilderProgressState.Waiting: - bars.update(update.id, data); - break; - - case BuilderProgressState.Running: - bars.update(update.id, data, update.current, update.total); - break; - } - - bars.render(); - }); // Wait for full completion of the builder. try { @@ -163,7 +111,6 @@ async function _executeTarget( logs.splice(0); await run.stop(); - bars.terminate(); return result.success ? 0 : 1; } catch (err) { diff --git a/packages/angular_devkit/architect_cli/package.json b/packages/angular_devkit/architect_cli/package.json index 4d9174dd8716..02fbcb57c4cb 100644 --- a/packages/angular_devkit/architect_cli/package.json +++ b/packages/angular_devkit/architect_cli/package.json @@ -17,10 +17,6 @@ "@angular-devkit/architect": "workspace:0.0.0-EXPERIMENTAL-PLACEHOLDER", "@angular-devkit/core": "workspace:0.0.0-PLACEHOLDER", "ansi-colors": "4.1.3", - "progress": "2.0.3", "yargs-parser": "22.0.0" - }, - "devDependencies": { - "@types/progress": "2.0.7" } } diff --git a/packages/angular_devkit/architect_cli/src/progress.ts b/packages/angular_devkit/architect_cli/src/progress.ts deleted file mode 100644 index e8c74353eb4b..000000000000 --- a/packages/angular_devkit/architect_cli/src/progress.ts +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @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.dev/license - */ - -import * as readline from 'node:readline'; -import ProgressBar from 'progress'; - -export class MultiProgressBar { - private _bars = new Map(); - - constructor( - private _status: string, - private _stream = process.stderr, - ) {} - private _add(id: Key, data: T): { data: T; bar: ProgressBar } { - const width = Math.min(80, this._stream.columns || 80); - const value = { - data, - bar: new ProgressBar(this._status, { - renderThrottle: 0, - clear: true, - total: 1, - width: width, - complete: '#', - incomplete: '.', - stream: this._stream, - }), - }; - this._bars.set(id, value); - readline.moveCursor(this._stream, 0, 1); - - return value; - } - - complete(id: Key) { - const maybeBar = this._bars.get(id); - if (maybeBar) { - maybeBar.bar.complete = true; - } - } - - add(id: Key, data: T) { - this._add(id, data); - } - - get(key: Key): T | undefined { - const maybeValue = this._bars.get(key); - - return maybeValue && maybeValue.data; - } - has(key: Key) { - return this._bars.has(key); - } - update(key: Key, data: T, current?: number, total?: number) { - let maybeBar = this._bars.get(key); - - if (!maybeBar) { - maybeBar = this._add(key, data); - } - - maybeBar.data = data; - if (total !== undefined) { - maybeBar.bar.total = total; - } - if (current !== undefined) { - maybeBar.bar.curr = Math.max(0, Math.min(current, maybeBar.bar.total)); - } - } - - render(max = Infinity, sort?: (a: T, b: T) => number) { - const stream = this._stream; - - readline.moveCursor(stream, 0, -this._bars.size); - readline.cursorTo(stream, 0); - - let values: Iterable<{ data: T; bar: ProgressBar }> = this._bars.values(); - if (sort) { - values = [...values].sort((a, b) => sort(a.data, b.data)); - } - - for (const { data, bar } of values) { - if (max-- == 0) { - return; - } - - bar.render(data); - readline.moveCursor(stream, 0, 1); - readline.cursorTo(stream, 0); - } - } - - terminate() { - for (const { bar } of this._bars.values()) { - bar.terminate(); - } - this._bars.clear(); - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d38683373504..a41d6ba12c29 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -571,16 +571,9 @@ importers: ansi-colors: specifier: 4.1.3 version: 4.1.3 - progress: - specifier: 2.0.3 - version: 2.0.3 yargs-parser: specifier: 22.0.0 version: 22.0.0 - devDependencies: - '@types/progress': - specifier: 2.0.7 - version: 2.0.7 packages/angular_devkit/build_angular: dependencies: