UNPKG

@forzalabs/remora

Version:

A powerful CLI tool for seamless data translation.

80 lines (79 loc) 3.97 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 }); exports.run = void 0; const chalk_1 = __importDefault(require("chalk")); const ora_1 = __importDefault(require("ora")); const Environment_1 = __importDefault(require("../engines/Environment")); const UserManager_1 = __importDefault(require("../engines/UserManager")); const ConsumerEngine_1 = __importDefault(require("../engines/consumer/ConsumerEngine")); const compile_1 = require("./compile"); const Helper_1 = __importDefault(require("../helper/Helper")); const run = (consumerName) => __awaiter(void 0, void 0, void 0, function* () { try { (0, compile_1.compile)(); console.log(); const spinner = (0, ora_1.default)(chalk_1.default.blue('Running consumer(s)...\n')).start(); const user = UserManager_1.default.getUser(); const consumersToExecute = []; if (consumerName && consumerName.length > 0) { const cons = Environment_1.default.getConsumer(consumerName); if (!cons) throw new Error(`Consumer with name "${consumerName}" was not found.`); consumersToExecute.push(cons); } else { consumersToExecute.push(...Environment_1.default._env.consumers); } const results = []; for (let i = 0; i < consumersToExecute.length; i++) { const consumer = consumersToExecute[i]; try { const response = yield ConsumerEngine_1.default.execute(consumer, {}, user); results.push({ success: true, consumer, response }); } catch (error) { const myErr = Helper_1.default.asError(error); results.push({ success: false, consumer, error: myErr.message }); if (Helper_1.default.isDev()) console.log(myErr.stack); } } spinner.succeed('All consumers have been executed:'); results.forEach(({ response, consumer, success, error }) => { if (success) { if (response.fileUri) console.log(chalk_1.default.green(`• Consumer ${consumer.name} -> ${response.fileUri}`)); else console.log(chalk_1.default.green(`• Consumer ${consumer.name} -> \n${response.data.slice(0, 5).map(x => JSON.stringify(x)).join('\n')}\n and ${response.data.length - 5} more...`)); } else { console.log(chalk_1.default.red(`• Consumer ${consumer.name} -> Failed: ${error}`)); } }); if (results.some(x => !x.success)) console.log(chalk_1.default.blueBright('\nℹ️ Run completed with errors')); else console.log(chalk_1.default.green('\n✅ Run complete!')); process.exit(1); } catch (err) { const myErr = Helper_1.default.asError(err); console.error(chalk_1.default.red.bold('\n❌ Unexpected error during run:'), myErr.message); if (Helper_1.default.isDev()) console.log(myErr.stack); process.exit(1); } }); exports.run = run;