Skip to content

Commit

Permalink
refactor(@angular/cli): handle undefined ng add collection name
Browse files Browse the repository at this point in the history
Fixes an issue where JSON help extraction fails if the `ng add` collection name is undefined.

(cherry picked from commit f5689e9)
  • Loading branch information
alan-agius4 committed Feb 13, 2025
1 parent 71ae86a commit 5c56cdb
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions packages/angular/cli/src/commands/add/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,11 @@ export default class AddCommandModule
// `ng add @angular/localize -- --package-options`.
.strict(false);

const collectionName = await this.getCollectionName();
const collectionName = this.getCollectionName();
if (!collectionName) {
return localYargs;
}

const workflow = this.getOrCreateWorkflowForBuilder(collectionName);

try {
Expand Down Expand Up @@ -401,14 +405,19 @@ export default class AddCommandModule
return false;
}

private async getCollectionName(): Promise<string> {
let [, collectionName] = this.context.args.positional;
private getCollectionName(): string | undefined {
const [, collectionName] = this.context.args.positional;
if (!collectionName) {
return undefined;
}

// The CLI argument may specify also a version, like `ng add @my/lib@13.0.0`,
// but here we need only the name of the package, like `@my/lib`
// but here we need only the name of the package, like `@my/lib`.
try {
const packageIdentifier = npa(collectionName);
collectionName = packageIdentifier.name ?? collectionName;
const packageName = npa(collectionName).name;
if (packageName) {
return packageName;
}
} catch (e) {
assertIsError(e);
this.context.logger.error(e.message);
Expand Down

0 comments on commit 5c56cdb

Please sign in to comment.