Skip to content

Commit 90cd6ba

Browse files
committed
feat: include option to force cordova inclusion
Signed-off-by: Mark Anderson <mark.anderson@outsystems.com>
1 parent f91c3be commit 90cd6ba

6 files changed

Lines changed: 15 additions & 3 deletions

File tree

‎cli/src/android/update.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export async function updateAndroid(config: Config): Promise<void> {
3737
printPlugins(capacitorPlugins, 'android');
3838

3939
const cordovaPlugins = plugins.filter((p) => getPluginType(p, platform) === PluginType.Cordova);
40-
const enableCordova = cordovaPlugins.length > 0;
40+
const enableCordova = cordovaPlugins.length > 0 || config.app.forceCordova;
4141

4242
await writePluginsJson(config, capacitorPlugins, enableCordova);
4343
await removePluginsNativeFiles(config);

‎cli/src/config.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ export async function loadConfig(): Promise<Config> {
5353
const appId = conf.extConfig.appId ?? '';
5454
const appName = conf.extConfig.appName ?? '';
5555
const webDir = conf.extConfig.webDir ?? 'www';
56+
const forceCordova = conf.extConfig.forceCordovaInclusion ?? false;
5657
const cli = await loadCLIConfig(cliRootDir);
5758

5859
const config: Config = {
@@ -66,6 +67,7 @@ export async function loadConfig(): Promise<Config> {
6667
appName,
6768
webDir,
6869
webDirAbs: resolve(appRootDir, webDir),
70+
forceCordova,
6971
package: (await tryFn(readJSON, resolve(appRootDir, 'package.json'))) ?? {
7072
name: appName,
7173
version: '1.0.0',

‎cli/src/declarations.ts‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,15 @@ export interface CapacitorConfig {
8585
*/
8686
initialFocus?: boolean;
8787

88+
/**
89+
* If set, will include Cordova support libraries regardless
90+
* of whether or not they are needed by plugins.
91+
*
92+
* @since 9.0.0
93+
* @default false
94+
*/
95+
forceCordovaInclusion?: boolean;
96+
8897
android?: {
8998
/**
9099
* Specify a custom path to the native Android project.

‎cli/src/definitions.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ export interface AppConfig {
6565
readonly extConfigName: string;
6666
readonly extConfigFilePath: string;
6767
readonly extConfig: ExternalConfig;
68+
readonly forceCordova: boolean;
6869
}
6970

7071
export interface AndroidConfig extends PlatformConfig {

‎cli/src/ios/update.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export async function updateIOS(config: Config, deployment: boolean): Promise<vo
4343
async function updatePluginFiles(config: Config, plugins: Plugin[], deployment: boolean) {
4444
await removePluginsNativeFiles(config);
4545
const cordovaPlugins = plugins.filter((p) => getPluginType(p, platform) === PluginType.Cordova);
46-
const enableCordova = cordovaPlugins.length > 0;
46+
const enableCordova = cordovaPlugins.length > 0 || config.app.forceCordova;
4747

4848
if (enableCordova) {
4949
logger.info('Found Cordova Plugins: Including iOS Cordova Support');

‎cli/src/util/spm.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export async function generatePackageText(config: Config, plugins: Plugin[]): Pr
101101
const iosPlatformVersion = await getCapacitorPackageVersion(config, config.ios.name);
102102
const iosVersion = getMajoriOSVersion(config);
103103
const cordovaPlugins = await getCordovaPlugins(config, 'ios');
104-
const enableCordova = cordovaPlugins.length > 0;
104+
const enableCordova = cordovaPlugins.length > 0 || config.app.forceCordova;
105105
const packageTraits = config.app.extConfig.experimental?.ios?.spm?.packageTraits ?? {};
106106
const packageOptions = config.app.extConfig.experimental?.ios?.spm?.packageOptions ?? {};
107107
const swiftToolsVersion = config.app.extConfig.experimental?.ios?.spm?.swiftToolsVersion ?? '5.9';

0 commit comments

Comments
 (0)