Skip to content

Commit 2a00f89

Browse files
authored
Yosifov/fix init cmd (#2625)
* Fix the version selection on init * Remove trailing space - lint error
1 parent a97d413 commit 2a00f89

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

lib/declarations.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
interface INodePackageManager {
22
install(packageName: string, pathToSave: string, config?: any): Promise<any>;
33
uninstall(packageName: string, config?: any, path?: string): Promise<any>;
4-
view(packageName: string, config: any): Promise<any>;
4+
view(packageName: string, config: Object): Promise<any>;
55
search(filter: string[], config: any): Promise<any>;
66
}
77

lib/node-package-manager.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,10 @@ export class NodePackageManager implements INodePackageManager {
9595
return this.$childProcess.exec(`npm search ${args.join(" ")}`);
9696
}
9797

98-
public async view(packageName: string, config: any): Promise<any> {
99-
let flags = this.getFlagsString(config, false);
98+
public async view(packageName: string, config: Object): Promise<any> {
99+
const wrappedConfig = _.extend({}, config, { json: true }); // always require view response as JSON
100+
101+
let flags = this.getFlagsString(wrappedConfig, false);
100102
let viewResult: any;
101103
try {
102104
viewResult = await this.$childProcess.exec(`npm view ${packageName} ${flags}`);

lib/npm-installation-manager.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export class NpmInstallationManager implements INpmInstallationManager {
2626
if (semver.satisfies(latestVersion, cliVersionRange)) {
2727
return latestVersion;
2828
}
29-
let data = await this.$npm.view(packageName, { json: true, "versions": true });
29+
let data = await this.$npm.view(packageName, { "versions": true });
3030

3131
return semver.maxSatisfying(data, cliVersionRange) || latestVersion;
3232
}
@@ -122,7 +122,7 @@ export class NpmInstallationManager implements INpmInstallationManager {
122122
* because npm view doens't work with those
123123
*/
124124
private async getVersion(packageName: string, version: string): Promise<string> {
125-
let data: any = await this.$npm.view(packageName, { json: true, "dist-tags": true });
125+
let data: any = await this.$npm.view(packageName, { "dist-tags": true });
126126
this.$logger.trace("Using version %s. ", data[version]);
127127

128128
return data[version];

lib/services/init-service.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ export class InitService implements IInitService {
106106
return this.buildVersionData(latestVersion);
107107
}
108108

109-
let data: any = await this.$npm.view(packageName, "versions");
110-
let versions = _.filter(data[latestVersion].versions, (version: string) => semver.gte(version, InitService.MIN_SUPPORTED_FRAMEWORK_VERSIONS[packageName]));
109+
let allVersions: any = await this.$npm.view(packageName, { "versions": true });
110+
let versions = _.filter(allVersions, (version: string) => semver.gte(version, InitService.MIN_SUPPORTED_FRAMEWORK_VERSIONS[packageName]));
111111
if (versions.length === 1) {
112112
this.$logger.info(`Only ${versions[0]} version is available for ${packageName}.`);
113113
return this.buildVersionData(versions[0]);

0 commit comments

Comments
 (0)