UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

80 lines (79 loc) 3.83 kB
'use strict'; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ansi_colors_1 = require("ansi-colors"); const archiver_1 = __importDefault(require("../../archiver")); const client_utils_1 = require("../../client-utils"); const endpoints_1 = require("../../endpoints"); const error_1 = __importDefault(require("../../error")); const prompt_1 = __importDefault(require("../../prompt")); const runtime_store_1 = __importDefault(require("../../runtime-store")); const config_1 = require("../../util_modules/config"); const fs_1 = require("../../util_modules/fs"); const js_1 = require("../../util_modules/js"); const logger_1 = require("../../util_modules/logger"); const project_1 = require("../../util_modules/project"); exports.default = () => __awaiter(void 0, void 0, void 0, function* () { const clientDirName = config_1.clientConfig.source(); const clientDirPath = (0, project_1.resolveProjectPath)(clientDirName); const webappAPI = yield (0, endpoints_1.clientAPI)(); const historyArr = (yield webappAPI.getAllHistory()); if (historyArr.length === 0) { (0, logger_1.info)('No history details found in remote console'); return; } const folderExits = yield fs_1.ASYNC.dirExists(clientDirPath); const overwriteAns = folderExits ? yield prompt_1.default.ask(prompt_1.default.question('overwrite', 'Directory ' + (0, ansi_colors_1.underline)(clientDirName) + ' already exists. Overwrite ?', { type: 'confirm', defaultAns: false })) : { overwrite: true }; if (!overwriteAns.overwrite) { (0, logger_1.info)('Skipping client pull'); return; } yield fs_1.ASYNC.deleteDir(clientDirPath).catch(); const choices = historyArr.map((history) => { let live = ''; if (js_1.JS.get(history, 'status', false)) { live = (0, ansi_colors_1.cyan)(' (LIVE)'); } return prompt_1.default.choice(history.app_version + live, { value: history.history_id, short: history.app_version }); }); const historyAns = yield prompt_1.default.ask(prompt_1.default.question('history', 'Select a Catalyst client app version : ', { type: 'list', choices })); try { const clientZip = (yield webappAPI.download(historyAns.history)); yield new archiver_1.default().load(clientZip).extract(clientDirPath).finalize(); yield client_utils_1.clientUtils.validate(); } catch (err) { runtime_store_1.default.set('payload.client.status', 1); if (err instanceof error_1.default) { throw new error_1.default(err.message, { exit: err.exit, errorId: err.errorId }); } throw err; } runtime_store_1.default.set('payload.client', runtime_store_1.default.get('context.client')); runtime_store_1.default.set('payload.client.source', (0, project_1.resolveProjectPath)(clientDirName)); });