dbmaster-cli
Version:
Tool for converting tables between Fifa Soccer Games
58 lines (57 loc) • 2.8 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CompareAction = exports.CompareMode = void 0;
const chalk_1 = __importDefault(require("chalk"));
const fifa_config_1 = require("../src/fifa-config");
const interfaces_1 = require("../src/interfaces");
const abstract_action_1 = require("./abstract.action");
var CompareMode;
(function (CompareMode) {
CompareMode["Column"] = "column";
CompareMode["Default"] = "default";
CompareMode["Order"] = "order";
CompareMode["Range"] = "range";
CompareMode["Type"] = "type";
})(CompareMode = exports.CompareMode || (exports.CompareMode = {}));
class CompareAction extends abstract_action_1.AbstractAction {
async handle(inputs, options) {
const left = options.find((option) => option.name === 'left').value;
const right = options.find((option) => option.name === 'right').value;
const table = options.find((option) => option.name === 'table').value;
const mode = options.find((option) => option.name === 'mode').value;
if (!Object.values(interfaces_1.Table).includes(table)) {
console.error('Invalid argument "table".');
return;
}
const compare = new fifa_config_1.CompareFifaConfig(left, right);
switch (mode) {
case CompareMode.Column:
console.info(chalk_1.default.green(`[${table}]`), chalk_1.default.yellow('Is the column present?'));
compare.printDiffColumns(table);
break;
case CompareMode.Default:
console.info(chalk_1.default.green(`[${table}]`), chalk_1.default.yellow('What is the default value of the column?'));
compare.printDiffDefaults(table);
break;
case CompareMode.Order:
console.info(chalk_1.default.green(`[${table}]`), chalk_1.default.yellow('What is the correct order of the column?'));
compare.printDiffOrder(table);
break;
case CompareMode.Range:
console.info(chalk_1.default.green(`[${table}]`), chalk_1.default.yellow('What is the range of the integer column?'));
compare.printDiffRange(table);
break;
case CompareMode.Type:
console.info(chalk_1.default.green(`[${table}]`), chalk_1.default.yellow('What is the correct datatype of the column?'));
compare.printDiffDatatype(table);
break;
default:
console.error('Invalid argument "mode".');
break;
}
}
}
exports.CompareAction = CompareAction;