create-rx-app
Version:
ReactXP Project Generator
55 lines (54 loc) • 2.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PackageManager = void 0;
var chalk_1 = __importDefault(require("chalk"));
var child_process_1 = require("child_process");
var exit = process.exit;
var PackageManager = /** @class */ (function () {
function PackageManager(yarn) {
this.yarn = yarn;
}
PackageManager.prototype.install = function (deps, description, saveDev) {
if (saveDev === void 0) { saveDev = false; }
var command = this.buildCommand(deps, saveDev);
console.log(this.buildDescription(description));
console.log(chalk_1.default.grey.bold('%s'), command);
try {
child_process_1.execSync(command, { stdio: 'inherit' });
}
catch (_a) {
console.log(chalk_1.default.red.bold('Dependencies were not installed, please try to create a project again.'));
exit(1);
}
};
PackageManager.prototype.buildDescription = function (description) {
return [
chalk_1.default.blue.bold(['[', this.yarn ? 'yarn' : 'npm', ']'].join('')),
chalk_1.default.white.bold([this.yarn ? 'adding' : 'installing', (description || '') + "..."].join(' ')),
].join(' ');
};
PackageManager.prototype.buildCommand = function (deps, saveDev) {
var packages = this.normalizeDependencies(deps);
if (this.yarn) {
return ['yarn', 'add', packages, '--exact', saveDev ? '--dev' : ''].join(' ');
}
return [
'npm',
'i',
packages,
'--save-exact',
'--loglevel=error',
saveDev ? '--save-dev' : '',
].join(' ');
};
PackageManager.prototype.normalizeDependencies = function (deps) {
return Object.keys(deps)
.map(function (key) { return key + "@" + deps[key]; })
.join(' ');
};
return PackageManager;
}());
exports.PackageManager = PackageManager;