diff --git a/src/schematics/setup/index.ts b/src/schematics/setup/index.ts index f86d1e683..8a657e17a 100644 --- a/src/schematics/setup/index.ts +++ b/src/schematics/setup/index.ts @@ -21,7 +21,7 @@ import { createFirestoreStarterFiles, setDefaultProjectInFirebaseRc, } from './firebaseConfigs'; -import { appPrompt, featuresPrompt, projectPrompt, userPrompt } from './prompts'; +import { appPrompt, featuresPrompt, featuresPromptMessage, projectPrompt, userPrompt } from './prompts'; // FirebaseOptions keys — apps.sdkconfig responses include management-API extras that initializeApp() rejects. const firebaseOptionsKeys = [ @@ -67,7 +67,14 @@ export const ngAddSetupProject = ( const features = await featuresPrompt(); - if (features.length > 0) { + if (features.length === 0) { + context.logger.warn( + 'No features were selected, so there is nothing to set up. ' + + `At the "${featuresPromptMessage}" prompt, use the arrow keys to move, ` + + 'press Space to select each feature you want, then Enter to confirm. ' + + 'Re-run ng add @angular/fire to try again.' + ); + } else { const firebaseTools = await getFirebaseTools(); diff --git a/src/schematics/setup/prompts.ts b/src/schematics/setup/prompts.ts index f36c22ed2..701713b96 100644 --- a/src/schematics/setup/prompts.ts +++ b/src/schematics/setup/prompts.ts @@ -79,12 +79,14 @@ type Prompt = (questions: { name: K, source: (...a const autocomplete: Prompt = (questions) => inquirer.prompt(questions); +export const featuresPromptMessage = 'What features would you like to setup?'; + export const featuresPrompt = async (): Promise => { const { features } = await inquirer.prompt({ type: 'checkbox', name: 'features', choices: featureOptions, - message: 'What features would you like to setup?', + message: featuresPromptMessage, default: [], }) as { features: FEATURES[] }; return features;