@forzalabs/remora
Version:
A powerful CLI tool for seamless data translation.
80 lines (79 loc) • 3.97 kB
JavaScript
;
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;