alm
Version:
The best IDE for TypeScript
61 lines (60 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* The stuff that interacts with system git
*/
var cp = require("child_process");
var wd = require("../../disk/workingDir");
var fsu = require("../../utils/fsu");
/** TODO: this is just a placeholder as I think about how to do this */
var getPackageJsonFilePath = function () {
var packageJsonFilePath = wd.getProjectRoot();
try {
packageJsonFilePath = fsu.travelUpTheDirectoryTreeTillYouFind(packageJsonFilePath, 'package.json');
}
catch (e) { }
return packageJsonFilePath;
};
/** Main utility function to execute a command */
var npmCmd = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return new Promise(function (resolve, reject) {
var cwd = wd.getProjectRoot();
cp.exec("npm " + args.join(' '), { cwd: cwd }, function (err, stdout, stderr) {
if (stderr.toString().trim().length) {
return resolve(stderr.toString());
}
return resolve(stdout.toString());
});
});
};
function npmInfo(args) {
return npmCmd('npm', 'info', args.packageName);
}
exports.npmInfo = npmInfo;
var _fetch = require("node-fetch");
function npmLatest(_a) {
var pack = _a.pack;
var queryUrl = 'http://registry.npmjs.org:80/' + encodeURIComponent(pack) + '/latest';
return _fetch(queryUrl)
.then(function (response) {
return response.json();
})
.then(function (obj) {
var result = {};
if (obj.description) {
result.description = obj.description;
}
if (obj.version) {
result.version = obj.version;
}
return result;
})
.catch(function (error) {
return { description: "Failed to query info for " + pack };
});
}
exports.npmLatest = npmLatest;