Skip to content

Commit 15f2389

Browse files
committed
fix(serve): support --platform for mode/platform selection
fixes #3185
1 parent bb1c82a commit 15f2389

File tree

4 files changed

+22
-4
lines changed

4 files changed

+22
-4
lines changed

packages/@ionic/cli-utils/src/lib/project/angular/serve.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ ${chalk.cyan('[1]')}: ${chalk.bold('https://github.com/angular/angular-cli/wiki/
7070
};
7171
}
7272

73+
platformToMode(platform: string): string {
74+
if (platform === 'ios') {
75+
return 'ios';
76+
}
77+
78+
return 'md';
79+
}
80+
81+
modifyOpenURL(url: string, options: AngularServeOptions): string {
82+
return `${url}${options.browserOption ? options.browserOption : ''}${options.platform ? `?ionic:mode=${this.platformToMode(options.platform)}` : ''}`;
83+
}
84+
7385
async serveProject(options: AngularServeOptions): Promise<ServeDetails> {
7486
const [ externalIP, availableInterfaces ] = await this.selectExternalIP(options);
7587

packages/@ionic/cli-utils/src/lib/project/ionic-angular/serve.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ export class ServeRunner extends BaseServeRunner<IonicAngularServeOptions> {
8282
};
8383
}
8484

85+
modifyOpenURL(url: string, options: IonicAngularServeOptions): string {
86+
return `${url}${options.browserOption ? options.browserOption : ''}${options.platform ? `?ionicplatform=${options.platform}` : ''}`;
87+
}
88+
8589
async serveProject(options: IonicAngularServeOptions): Promise<ServeDetails> {
8690
const [ externalIP, availableInterfaces ] = await this.selectExternalIP(options);
8791
const { port, livereloadPort, notificationPort } = await findOpenIonicPorts(options.address, options);

packages/@ionic/cli-utils/src/lib/project/ionic1/serve.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ export class ServeRunner extends BaseServeRunner<Ionic1ServeOptions> {
7777
};
7878
}
7979

80+
modifyOpenURL(url: string, options: Ionic1ServeOptions): string {
81+
return `${url}${options.browserOption ? options.browserOption : ''}${options.platform ? `?ionicplatform=${options.platform}` : ''}`;
82+
}
83+
8084
async serveProject(options: Ionic1ServeOptions): Promise<ServeDetails> {
8185
const [ externalIP, availableInterfaces ] = await this.selectExternalIP(options);
8286
const { port, livereloadPort, notificationPort } = await findOpenIonicPorts(options.address, options);

packages/@ionic/cli-utils/src/lib/serve.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ export abstract class ServeRunner<T extends ServeOptions> extends EventEmitter i
128128

129129
abstract getCommandMetadata(): Promise<Partial<CommandMetadata>>;
130130
abstract serveProject(options: T): Promise<ServeDetails>;
131+
abstract modifyOpenURL(url: string, options: T): string;
131132

132133
createOptionsFromCommandLine(inputs: CommandLineInputs, options: CommandLineOptions): ServeOptions {
133134
const separatedArgs = options['--'];
@@ -236,10 +237,7 @@ export abstract class ServeRunner<T extends ServeOptions> extends EventEmitter i
236237

237238
if (options.open) {
238239
const openAddress = labAddress ? labAddress : localAddress;
239-
const openURL = [openAddress]
240-
.concat(options.browserOption ? [options.browserOption] : [])
241-
.concat(options.platform ? ['?ionicplatform=', options.platform] : [])
242-
.join('');
240+
const openURL = this.modifyOpenURL(openAddress, options);
243241

244242
const opn = await import('opn');
245243
await opn(openURL, { app: options.browser, wait: false });

0 commit comments

Comments
 (0)