From 52f5d5114f139979606fafff4e20fb1dde003a53 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Wed, 21 May 2025 18:38:03 -0400 Subject: [PATCH] refactor(@angular/cli): adjust type usage for eventual ESM building Several adjustments to type usage with the goal of support for the future building of the package as ESM. These changes were mainly around the `yargs` package where the ESM types differ from the CommonJS types. --- packages/angular/cli/src/command-builder/command-module.ts | 6 ++++-- packages/angular/cli/src/command-builder/command-runner.ts | 2 +- .../cli/src/command-builder/utilities/json-schema.ts | 4 ++-- packages/angular/cli/src/{typings.ts => typings.d.ts} | 0 4 files changed, 7 insertions(+), 5 deletions(-) rename packages/angular/cli/src/{typings.ts => typings.d.ts} (100%) diff --git a/packages/angular/cli/src/command-builder/command-module.ts b/packages/angular/cli/src/command-builder/command-module.ts index a97815eec027..91fc088b5714 100644 --- a/packages/angular/cli/src/command-builder/command-module.ts +++ b/packages/angular/cli/src/command-builder/command-module.ts @@ -9,12 +9,14 @@ import { logging, schema } from '@angular-devkit/core'; import { readFileSync } from 'node:fs'; import * as path from 'node:path'; -import yargs, { +import yargs from 'yargs'; +import type { ArgumentsCamelCase, Argv, CamelCaseKey, CommandModule as YargsCommandModule, -} from 'yargs'; + // Resolution mode is required due to CamelCaseKey missing from esm types +} from 'yargs' with { 'resolution-mode': 'require' }; import { Parser as yargsParser } from 'yargs/helpers'; import { getAnalyticsUserId } from '../analytics/analytics'; import { AnalyticsCollector } from '../analytics/analytics-collector'; diff --git a/packages/angular/cli/src/command-builder/command-runner.ts b/packages/angular/cli/src/command-builder/command-runner.ts index 2ad2c07b1eeb..45d6ec50ae5a 100644 --- a/packages/angular/cli/src/command-builder/command-runner.ts +++ b/packages/angular/cli/src/command-builder/command-runner.ts @@ -138,7 +138,7 @@ export async function runCommand(args: string[], logger: logging.Logger): Promis : // Unknown exception, re-throw. err; }) - .wrap(yargs.terminalWidth()) + .wrap(localYargs.terminalWidth()) .parseAsync(); return +(process.exitCode ?? 0); diff --git a/packages/angular/cli/src/command-builder/utilities/json-schema.ts b/packages/angular/cli/src/command-builder/utilities/json-schema.ts index a46b06646197..84af5f2d3641 100644 --- a/packages/angular/cli/src/command-builder/utilities/json-schema.ts +++ b/packages/angular/cli/src/command-builder/utilities/json-schema.ts @@ -7,12 +7,12 @@ */ import { json, strings } from '@angular-devkit/core'; -import yargs, { Arguments, Argv, PositionalOptions, Options as YargsOptions } from 'yargs'; +import type { Arguments, Argv, PositionalOptions, Options as YargsOptions } from 'yargs'; /** * An option description. */ -export interface Option extends yargs.Options { +export interface Option extends YargsOptions { /** * The name of the option. */ diff --git a/packages/angular/cli/src/typings.ts b/packages/angular/cli/src/typings.d.ts similarity index 100% rename from packages/angular/cli/src/typings.ts rename to packages/angular/cli/src/typings.d.ts