コマンドライン上で対話をする

Firebaseのような対話をする

https://github.com/firebase/firebase-tools/blob/e36933b8fb65d4f59cac491fff4a4f77233c09b4/src/commands/init.js

 

promptという抽象化されたスクリプトがある

これは60行ほどのソースコードで{promptクラストpromptOnceというファンクションの2つをエクスポートしている

 

https://github.com/firebase/firebase-tools/blob/e36933b8fb65d4f59cac491fff4a4f77233c09b4/src/prompt.ts

 

import しているライブラリは、inquirerとlodash
https://github.com/SBoudrias/Inquirer.js/

 

 

var choices = [
{
value: "database",
name: "Database: Deploy Firebase Realtime Database Rules",
checked: false,
},
{
value: "firestore",
name: "Firestore: Deploy rules and create indexes for Firestore",
checked: false,
},
{
value: "functions",
name: "Functions: Configure and deploy Cloud Functions",
checked: false,
},
{
value: "hosting",
name: "Hosting: Configure and deploy Firebase Hosting sites",
checked: false,
},
{
value: "storage",
name: "Storage: Deploy Cloud Storage security rules",
checked: false,
},
]; 

 

 

 

return prompt(setup, [
{
type: "checkbox",
name: "features",
message:
"Which Firebase CLI features do you want to set up for this folder? " +
"Press Space to select features, then Enter to confirm your choices.",
choices: choices,
},
]);


chocesとtype