Skip to content

Commit bb1c82a

Browse files
committed
feat(build/serve): expose engine and platform
1 parent 606973d commit bb1c82a

File tree

3 files changed

+39
-9
lines changed

3 files changed

+39
-9
lines changed

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

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { BaseError } from '@ionic/cli-framework';
1+
import { BaseError, OptionGroup } from '@ionic/cli-framework';
22
import chalk from 'chalk';
33

44
import { PROJECT_FILE } from '../constants';
@@ -19,11 +19,12 @@ export const COMMON_BUILD_COMMAND_OPTIONS: ReadonlyArray<CommandMetadataOption>
1919
{
2020
name: 'engine',
2121
summary: `Target engine (e.g. ${['browser', 'cordova'].map(e => chalk.green(e)).join(', ')})`,
22-
default: 'browser',
22+
groups: [OptionGroup.Advanced],
2323
},
2424
{
2525
name: 'platform',
2626
summary: `Target platform on chosen engine (e.g. ${['ios', 'android'].map(e => chalk.green(e)).join(', ')})`,
27+
groups: [OptionGroup.Advanced],
2728
},
2829
];
2930

@@ -78,11 +79,23 @@ export abstract class BuildRunner<T extends BuildOptions<any>> implements Runner
7879
createBaseOptionsFromCommandLine(inputs: CommandLineInputs, options: CommandLineOptions): BaseBuildOptions {
7980
const separatedArgs = options['--'];
8081
const platform = options['platform'] ? String(options['platform']) : undefined;
81-
const engine = options['engine'] ? String(options['engine']) : 'browser';
82+
const engine = this.determineEngineFromCommandLine(options);
8283

8384
return { '--': separatedArgs ? separatedArgs : [], engine, platform };
8485
}
8586

87+
determineEngineFromCommandLine(options: CommandLineOptions): string {
88+
if (options['engine']) {
89+
return String(options['engine']);
90+
}
91+
92+
if (options['cordova']) {
93+
return 'cordova';
94+
}
95+
96+
return 'browser';
97+
}
98+
8699
async beforeBuild(options: T): Promise<void> {
87100
const hook = new BuildBeforeHook({ config: this.config, project: this.project, shell: this.shell });
88101

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@ export const COMMON_SERVE_COMMAND_OPTIONS: ReadonlyArray<CommandMetadataOption>
6060
type: Boolean,
6161
default: true,
6262
},
63+
{
64+
name: 'engine',
65+
summary: `Target engine (e.g. ${['browser', 'cordova'].map(e => chalk.green(e)).join(', ')})`,
66+
groups: [OptionGroup.Advanced],
67+
},
68+
{
69+
name: 'platform',
70+
summary: `Target platform on chosen engine (e.g. ${['ios', 'android'].map(e => chalk.green(e)).join(', ')})`,
71+
groups: [OptionGroup.Advanced],
72+
},
6373
];
6474

6575
export interface ServeRunnerDeps {
@@ -127,7 +137,7 @@ export abstract class ServeRunner<T extends ServeOptions> extends EventEmitter i
127137
options['devapp'] = false;
128138
}
129139

130-
const engine = options['engine'] ? String(options['engine']) : 'browser';
140+
const engine = this.determineEngineFromCommandLine(options);
131141
const address = options['address'] ? String(options['address']) : BIND_ALL_ADDRESS;
132142
const labPort = str2num(options['lab-port'], DEFAULT_LAB_PORT);
133143
const port = str2num(options['port'], DEFAULT_SERVER_PORT);
@@ -152,6 +162,18 @@ export abstract class ServeRunner<T extends ServeOptions> extends EventEmitter i
152162
};
153163
}
154164

165+
determineEngineFromCommandLine(options: CommandLineOptions): string {
166+
if (options['engine']) {
167+
return String(options['engine']);
168+
}
169+
170+
if (options['cordova']) {
171+
return 'cordova';
172+
}
173+
174+
return 'browser';
175+
}
176+
155177
async displayDevAppMessage(options: T) {
156178
const pkg = await this.project.requirePackageJson();
157179

packages/ionic/src/commands/serve.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,6 @@ export class ServeCommand extends Command implements CommandPreRun {
7272
type: Boolean,
7373
aliases: ['l'],
7474
},
75-
{
76-
name: 'platform',
77-
summary: `Start serve with a specific platform (${['android', 'ios'].map(t => chalk.green(t)).join(', ')})`,
78-
aliases: ['t'],
79-
},
8075
{
8176
name: 'auth',
8277
summary: 'HTTP Basic Auth password to secure the server on your local network',

0 commit comments

Comments
 (0)