UNPKG

@contentstack/cli-cm-bootstrap

Version:
119 lines (118 loc) 4.04 kB
"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;