@feflow/cli
Version:
A front-end flow tool.
69 lines • 2.38 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isInstalledPM = exports.install = exports.getRegistryUrl = void 0;
var cross_spawn_1 = __importDefault(require("cross-spawn"));
function getRegistryUrl(packageManager) {
return new Promise(function (resolve, reject) {
var command = packageManager;
var args = ['config', 'get', 'registry'];
var child = (0, cross_spawn_1.default)(command, args, { windowsHide: true });
var output = '';
child.stdout.on('data', function (data) {
output += data;
});
child.on('close', function (code) {
if (code !== 0) {
reject({
command: "".concat(command, " ").concat(args.join(' ')),
});
return;
}
output = output.replace(/\n/, '').replace(/\/$/, '');
resolve(output);
});
child.on('error', function (err) {
reject(err);
});
});
}
exports.getRegistryUrl = getRegistryUrl;
function install(packageManager, root, cmd, dependencies, verbose) {
return new Promise(function (resolve, reject) {
var command = packageManager;
var args = [cmd, '--save', '--save-exact', '--loglevel', 'error'].concat(dependencies);
if (verbose) {
args.push('--verbose');
}
var child = (0, cross_spawn_1.default)(command, args, { stdio: 'inherit', cwd: root, windowsHide: true });
child.on('close', function (code) {
if (code !== 0) {
reject({
command: "".concat(command, " ").concat(args.join(' ')),
});
return;
}
resolve();
});
child.on('error', function (err) {
reject(err);
});
});
}
exports.install = install;
function isInstalledPM(packageName) {
try {
var ret = cross_spawn_1.default.sync(packageName, ['-v'], {
stdio: 'ignore',
windowsHide: true,
});
return ret.status === 0;
}
catch (err) {
return false;
}
}
exports.isInstalledPM = isInstalledPM;
//# sourceMappingURL=npm.js.map