Skip to content

Commit 0f34e13

Browse files
Almo7ayaritwickdey
authored andcommitted
Fallback to random port if the default is taken. (#330)
* Added: set port & setting methods to Config class (#328) * Update port when taken and start live-server again (fixes #328)
1 parent 41df0b0 commit 0f34e13

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

src/Config.ts

+8
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ export class Config {
2525
return Config.configuration.get(val) as T;
2626
}
2727

28+
private static setSettings(key: string, val: number, isGlobal: boolean = false): Thenable<void> {
29+
return Config.configuration.update(key, val, isGlobal);
30+
}
31+
2832
public static get getHost(): string {
2933
return Config.getSettings<string>('host');
3034
}
@@ -37,6 +41,10 @@ export class Config {
3741
return Config.getSettings<number>('port');
3842
}
3943

44+
public static setPort(port: number): Thenable<void> {
45+
return Config.setSettings('port', port);
46+
}
47+
4048
public static get getRoot(): string {
4149
return Config.getSettings<string>('root');
4250
}

src/appModel.ts

+7-4
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export class AppModel implements IAppModel {
8383
this.tagMissedCallback();
8484
});
8585

86-
LiveServerHelper.StartServer(params, (serverInstance) => {
86+
LiveServerHelper.StartServer(params, async (serverInstance) => {
8787
if (serverInstance && serverInstance.address) {
8888
this.LiveServerInstance = serverInstance;
8989
this.runningPort = serverInstance.address().port;
@@ -100,10 +100,13 @@ export class AppModel implements IAppModel {
100100
}
101101
}
102102
else {
103-
if (!serverInstance.errorMsg)
104-
this.showPopUpMsg(`Error on port ${Config.getPort}. Please try to change the port through settings or report on GitHub.`, true);
105-
else
103+
if (!serverInstance.errorMsg) {
104+
await Config.setPort(Config.getPort + 1); // + 1 will be fine
105+
this.showPopUpMsg(`The default port : ${Config.getPort - 1} is currently taken, changing port to : ${Config.getPort}.`);
106+
this.Golive(pathUri);
107+
} else {
106108
this.showPopUpMsg(`Something is went wrong! Please check into Developer Console or report on GitHub.`, true);
109+
}
107110
this.IsServerRunning = true; // to revert status - cheat :p
108111
this.ToggleStatusBar(); // reverted
109112
}

0 commit comments

Comments
 (0)