UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

82 lines (81 loc) 3.89 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 apig_utils_1 = require("../../apig-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 sync_1 = require("../../util_modules/fs/lib/sync"); 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 apigName = config_1.apigConfig.rules(); const apigDirPath = (0, project_1.resolveProjectPath)(apigName); if ((0, sync_1.isPathOutside)(runtime_store_1.default.get('project.root'), apigDirPath)) { (0, logger_1.info)('Skipping APIG pull since rules file is outside root dir : ' + runtime_store_1.default.get('project.root')); return; } const apigAPIs = yield (0, endpoints_1.apigAPI)(); const apigStatus = (yield apigAPIs.getAPIGStatus()); if (!apigStatus.status) { (0, logger_1.info)(); const consent = yield prompt_1.default.ask(prompt_1.default.question('enable', 'The APIG is disable in catalyst console, Do you want to enable it and pull the APIG rules now ?', { type: 'confirm', defaultAns: false })); if (!consent.enable) { (0, logger_1.info)('Skipping APIG pull. Since the APIG is disabled in catalyst console.'); return; } yield apigAPIs.updateAPIGStatus(true); } const fileExists = yield fs_1.ASYNC.fileExists(apigDirPath); const overwriteAns = fileExists ? yield prompt_1.default.ask(prompt_1.default.question('overwrite', 'File ' + (0, ansi_colors_1.underline)(apigDirPath) + ' already exists. Overwrite ?', { type: 'confirm', defaultAns: false })) : { overwrite: true }; if (!overwriteAns.overwrite) { (0, logger_1.info)('Skipping APIG pull'); return; } yield fs_1.ASYNC.deleteFile(apigDirPath).catch(); const rulesArr = (yield apigAPIs.getAllRules()); if (!rulesArr || rulesArr.length === 0) { (0, logger_1.info)('No rules found in remote console'); return; } try { const fileContent = JSON.stringify(rulesArr, null, 2) + '\n'; yield fs_1.ASYNC.writeFile(apigDirPath, fileContent); yield apig_utils_1.apigUtils.validate(); } catch (err) { runtime_store_1.default.set('payload.apig.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.apig.source', apigDirPath); });