From 7f841ff8404f886385659a203c75a57baca010b3 Mon Sep 17 00:00:00 2001 From: SteveSandersonMS Date: Tue, 13 Sep 2016 13:44:51 +0100 Subject: [PATCH] In Yeoman generator, support passing args from command line (e.g., --framework=angular-2) --- templates/package-builder/src/yeoman/app/index.ts | 7 ++++++- templates/package-builder/src/yeoman/package.json | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/templates/package-builder/src/yeoman/app/index.ts b/templates/package-builder/src/yeoman/app/index.ts index 04687a0..0d6af2d 100644 --- a/templates/package-builder/src/yeoman/app/index.ts +++ b/templates/package-builder/src/yeoman/app/index.ts @@ -5,6 +5,9 @@ import * as glob from 'glob'; const yosay = require('yosay'); const toPascalCase = require('to-pascal-case'); +type YeomanPrompt = (opt: yeoman.IPromptOptions | yeoman.IPromptOptions[], callback: (answers: any) => void) => void; +const optionOrPrompt: YeomanPrompt = require('yeoman-option-or-prompt'); + const templates = [ { value: 'angular-2', name: 'Angular 2' }, { value: 'knockout', name: 'Knockout' }, @@ -14,16 +17,18 @@ const templates = [ class MyGenerator extends yeoman.Base { private _answers: any; + private _optionOrPrompt: YeomanPrompt; constructor(args: string | string[], options: any) { super(args, options); + this._optionOrPrompt = optionOrPrompt; this.log(yosay('Welcome to the ASP.NET Core Single-Page App generator!')); } prompting() { const done = this.async(); - this.prompt([{ + this._optionOrPrompt([{ type: 'list', name: 'framework', message: 'Framework', diff --git a/templates/package-builder/src/yeoman/package.json b/templates/package-builder/src/yeoman/package.json index 49302f9..2b1305c 100644 --- a/templates/package-builder/src/yeoman/package.json +++ b/templates/package-builder/src/yeoman/package.json @@ -1,6 +1,6 @@ { "name": "generator-aspnetcore-spa", - "version": "0.2.6", + "version": "0.2.7", "description": "Single-Page App templates for ASP.NET Core", "author": "Microsoft", "license": "Apache-2.0", @@ -15,6 +15,7 @@ "node-uuid": "^1.4.7", "to-pascal-case": "^1.0.0", "yeoman-generator": "^0.20.2", + "yeoman-option-or-prompt": "^1.0.2", "yosay": "^1.1.1" } }