ask-cli-x
Version:
Alexa Skills Kit (ASK) Command Line Interfaces
58 lines (57 loc) • 1.91 kB
JavaScript
;
const inquirer = require("inquirer");
const path = require("path");
const Messenger = require("../../../view/messenger");
module.exports = {
selectLocales,
displayAddLocalesResult,
};
/**
* Prompt users to select locales
* @param {Array} localeChoices
* @param {Function} callback
*/
function selectLocales(localeChoices, callback) {
inquirer
.prompt([
{
message: "Please select at least one locale to add:",
type: "checkbox",
name: "localeList",
choices: localeChoices,
},
])
.then((answer) => {
callback(null, answer.localeList);
})
.catch((error) => {
callback(error);
});
}
/**
* Display the result of locales addition
* @param {Array} selectedLocales selected locales
* @param {Map} iModelSourceByLocales Map { locale: { uri, canCopy} }
*/
function displayAddLocalesResult(selectedLocales, iModelSourceByLocales) {
for (const locale of selectedLocales) {
if (!iModelSourceByLocales.has(locale)) {
Messenger.getInstance().info(`Locale ${locale}.json already exists`);
}
}
Messenger.getInstance().info("");
if (iModelSourceByLocales.size === 0) {
return;
}
Messenger.getInstance().info("The following skill locale(s) have been added according to your local project:");
iModelSourceByLocales.forEach((v, k) => {
if (v.canCopy) {
const sourceLocale = path.basename(v.uri, path.extname(v.uri));
Messenger.getInstance().info(` Added locale ${k}.json from ${sourceLocale}'s interactionModel`);
}
else {
Messenger.getInstance().info(` Added locale ${k}.json from the template of interactionModel`);
}
});
Messenger.getInstance().info('Please check the added files above, and run "ask deploy" to deploy the changes.');
}