@contentstack/cli-cm-bootstrap
Version:
Bootstrap contentstack apps
119 lines (118 loc) • 4.04 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.continueBootstrapCommand = exports.inquireRunDevServer = exports.inquireLivePreviewSupport = exports.inquireAppType = exports.inquireGithubAccessToken = exports.inquireCloneDirectory = exports.inquireApp = void 0;
const inquirer = require('inquirer');
const cli_utilities_1 = require("@contentstack/cli-utilities");
const messages_1 = require("../messages");
/**
* @description Inquire starter app
*/
async function inquireApp(apps) {
const appsPreview = apps.map((app) => {
return {
name: app.displayName,
value: app,
};
});
const actions = [
{
type: 'list',
name: 'app',
message: messages_1.default.parse('CLI_BOOTSTRAP_APP_SELECTION_ENQUIRY'),
choices: [...appsPreview, 'Exit'],
},
];
const selectedApp = await inquirer.prompt(actions);
if (selectedApp.app === 'Exit') {
cli_utilities_1.cliux.print('Exiting...');
throw new Error('Exit');
}
return selectedApp.app;
}
exports.inquireApp = inquireApp;
/**
* @description Inquire clone destination directory
*/
async function inquireCloneDirectory() {
const actions = [
{
type: 'list',
name: 'path',
message: messages_1.default.parse('CLI_BOOTSTRAP_APP_COPY_SOURCE_CODE_DESTINATION_TYPE_ENQUIRY'),
choices: ['Current Folder', 'Other'],
},
];
const selectedPath = await inquirer.prompt(actions);
if (selectedPath.path === 'Current Folder') {
return process.cwd();
}
// Ask for the custom path
let selectedCustomPath = await inquirer.prompt([
{
type: 'string',
name: 'path',
message: messages_1.default.parse('CLI_BOOTSTRAP_APP_COPY_SOURCE_CODE_DESTINATION_ENQUIRY'),
},
]);
selectedCustomPath = (0, cli_utilities_1.pathValidator)(selectedCustomPath.path);
return selectedCustomPath;
}
exports.inquireCloneDirectory = inquireCloneDirectory;
async function inquireGithubAccessToken() {
// Ask for the access token
const accessToken = await inquirer.prompt([
{
type: 'string',
name: 'token',
message: messages_1.default.parse('CLI_BOOTSTRAP_NO_ACCESS_TOKEN_CREATED'),
},
]);
return accessToken.token;
}
exports.inquireGithubAccessToken = inquireGithubAccessToken;
async function inquireAppType() {
const actions = [
{
type: 'list',
name: 'type',
message: messages_1.default.parse('CLI_BOOTSTRAP_TYPE_OF_APP_ENQUIRY'),
choices: [
{ name: 'Sample App', value: 'sampleapp' },
{ name: 'Starter App', value: 'starterapp' },
],
},
];
const appType = await inquirer.prompt(actions);
return appType.type;
}
exports.inquireAppType = inquireAppType;
async function inquireLivePreviewSupport() {
const { livePreviewEnabled } = await inquirer.prompt({
type: 'confirm',
name: 'livePreviewEnabled',
message: 'Enable live preview?',
});
return livePreviewEnabled;
}
exports.inquireLivePreviewSupport = inquireLivePreviewSupport;
async function inquireRunDevServer() {
const { runDevServer } = await inquirer.prompt({
type: 'confirm',
name: 'runDevServer',
message: messages_1.default.parse('CLI_BOOTSTRAP_RUN_DEV_SERVER_ENQUIRY'),
default: true,
});
return runDevServer;
}
exports.inquireRunDevServer = inquireRunDevServer;
async function continueBootstrapCommand() {
const { shouldContinue } = await inquirer.prompt({
type: 'list',
name: 'shouldContinue',
message: `To continue with the Bootstrap command without Live Preview, please select Yes.`,
choices: ['yes', 'no'],
loop: false,
});
return shouldContinue;
}
exports.continueBootstrapCommand = continueBootstrapCommand;