Skip to content

Commit d51e767

Browse files
authored
Error handling fixes. (#2938)
1 parent 60cf564 commit d51e767

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

lib/node-package-manager.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export class NodePackageManager implements INodePackageManager {
104104
try {
105105
viewResult = await this.$childProcess.exec(`npm view ${packageName} ${flags}`);
106106
} catch (e) {
107-
this.$errors.failWithoutHelp(e);
107+
this.$errors.failWithoutHelp(e.message);
108108
}
109109
return JSON.parse(viewResult);
110110
}
@@ -221,7 +221,6 @@ export class NodePackageManager implements INodePackageManager {
221221

222222
if (childProcess.stderr) {
223223
childProcess.stderr.on("data", (data: string) => {
224-
console.error(data.toString());
225224
capturedErr += data;
226225
});
227226
}

lib/npm-installation-manager.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class NpmInstallationManager implements INpmInstallationManager {
4242
} catch (error) {
4343
this.$logger.debug(error);
4444

45-
throw new Error(error);
45+
throw error;
4646
}
4747
}
4848

@@ -91,11 +91,9 @@ export class NpmInstallationManager implements INpmInstallationManager {
9191
if (this.$fs.exists(possiblePackageName)) {
9292
packageName = possiblePackageName;
9393
}
94-
if (packageName.indexOf(".tgz") >= 0) {
95-
version = null;
96-
}
94+
9795
// check if the packageName is url or local file and if it is, let npm install deal with the version
98-
if (this.isURL(packageName) || this.$fs.exists(packageName)) {
96+
if (this.isURL(packageName) || this.$fs.exists(packageName) || this.isTgz(packageName)) {
9997
version = null;
10098
} else {
10199
version = version || await this.getLatestCompatibleVersion(packageName);
@@ -108,7 +106,11 @@ export class NpmInstallationManager implements INpmInstallationManager {
108106
return pathToInstalledPackage;
109107
}
110108

111-
private isURL(str: string) {
109+
private isTgz(packageName: string): boolean {
110+
return packageName.indexOf(".tgz") >= 0;
111+
}
112+
113+
private isURL(str: string): boolean {
112114
let urlRegex = '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$';
113115
let url = new RegExp(urlRegex, 'i');
114116
return str.length < 2083 && url.test(str);

0 commit comments

Comments
 (0)