From 71c6cc506e52bd14cf514b305f45b2f9914ceb36 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Wed, 6 Feb 2019 06:13:45 +0100 Subject: [PATCH] refactor: add `allowAdditionalArgs` to be able to bypass extra params validations (#13556) --- packages/angular/cli/commands/add-impl.ts | 1 + packages/angular/cli/models/schematic-command.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/angular/cli/commands/add-impl.ts b/packages/angular/cli/commands/add-impl.ts index 34c9b75b1f..42c1b5b09c 100644 --- a/packages/angular/cli/commands/add-impl.ts +++ b/packages/angular/cli/commands/add-impl.ts @@ -25,6 +25,7 @@ const npa = require('npm-package-arg'); export class AddCommand extends SchematicCommand { readonly allowPrivateSchematics = true; + readonly allowAdditionalArgs = true; readonly packageManager = getPackageManager(this.workspace.root); async run(options: AddCommandSchema & Arguments) { diff --git a/packages/angular/cli/models/schematic-command.ts b/packages/angular/cli/models/schematic-command.ts index 833026d30b..63c8b29319 100644 --- a/packages/angular/cli/models/schematic-command.ts +++ b/packages/angular/cli/models/schematic-command.ts @@ -77,6 +77,7 @@ export abstract class SchematicCommand< T extends (BaseSchematicSchema & BaseCommandOptions), > extends Command { readonly allowPrivateSchematics: boolean = false; + readonly allowAdditionalArgs: boolean = false; private _host = new NodeJsSyncHost(); private _workspace: experimental.workspace.Workspace; private readonly _engine: Engine; @@ -438,7 +439,7 @@ export abstract class SchematicCommand< } // ng-add is special because we don't know all possible options at this point - if (args['--'] && schematicName !== 'ng-add') { + if (args['--'] && !this.allowAdditionalArgs) { args['--'].forEach(additional => { this.logger.fatal(`Unknown option: '${additional.split(/=/)[0]}'`); });