MCPcopy
hub / github.com/ionic-team/capacitor / updatePluginFiles

Function updatePluginFiles

cli/src/ios/update.ts:47–96  ·  view source on GitHub ↗
(config: Config, plugins: Plugin[], deployment: boolean)

Source from the content-addressed store, hash-verified

45}
46
47async function updatePluginFiles(config: Config, plugins: Plugin[], deployment: boolean) {
48 await removePluginsNativeFiles(config);
49 const cordovaPlugins = plugins.filter((p) => getPluginType(p, platform) === PluginType.Cordova);
50 if (cordovaPlugins.length > 0) {
51 await copyPluginsNativeFiles(config, cordovaPlugins);
52 }
53 if (!(await pathExists(await config.ios.webDirAbs))) {
54 await copyTask(config, platform);
55 }
56 await handleCordovaPluginsJS(cordovaPlugins, config, platform);
57 await checkPluginDependencies(plugins, platform, config.app.extConfig.cordova?.failOnUninstalledPlugins);
58 if ((await config.ios.packageManager) === 'SPM') {
59 await generateCordovaPackageFiles(cordovaPlugins, config);
60
61 const validSPMPackages = await checkPluginsForPackageSwift(config, plugins);
62 await Promise.all(
63 validSPMPackages.map(async (plugin) => {
64 const iosPlatformVersion = await getCapacitorPackageVersion(config, config.ios.name);
65 const packageSwiftPath = join(plugin.rootPath, 'Package.swift');
66 let content = await readFile(packageSwiftPath, { encoding: 'utf-8' });
67 const regex = new RegExp(
68 'url:\\s*"https://github.com/ionic-team/capacitor-swift-pm\\.git",\\s*from:\\s*"([^"]+)"',
69 );
70 const version = content.match(regex)?.[1];
71 const majorCapVersion = major(iosPlatformVersion);
72 if (version && major(version) != majorCapVersion) {
73 const preCapVersion = prerelease(iosPlatformVersion);
74 const forceVersion = preCapVersion ? iosPlatformVersion : `${majorCapVersion}.0.0`;
75 content = setAllStringIn(
76 content,
77 `url: "https://github.com/ionic-team/capacitor-swift-pm.git",`,
78 `)`,
79 ` from: "${forceVersion}"`,
80 );
81 await writeFile(packageSwiftPath, content);
82 logger.warn(`${plugin.id} is built for Capacitor ${major(version)}, it might cause issues`);
83 }
84 }),
85 );
86
87 await generatePackageFile(config, validSPMPackages.concat(cordovaPlugins));
88 } else {
89 await generateCordovaPodspecs(cordovaPlugins, config);
90 await installCocoaPodsPlugins(config, plugins, deployment);
91 }
92 await logCordovaManualSteps(cordovaPlugins, config, platform);
93
94 const incompatibleCordovaPlugins = plugins.filter((p) => getPluginType(p, platform) === PluginType.Incompatible);
95 printPlugins(incompatibleCordovaPlugins, platform, 'incompatible');
96}
97
98async function generateCordovaPackageFiles(cordovaPlugins: Plugin[], config: Config) {
99 cordovaPlugins.map((plugin: any) => {

Callers 1

updateIOSFunction · 0.85

Calls 15

getPluginTypeFunction · 0.90
handleCordovaPluginsJSFunction · 0.90
checkPluginDependenciesFunction · 0.90
setAllStringInFunction · 0.90
generatePackageFileFunction · 0.90
logCordovaManualStepsFunction · 0.90
printPluginsFunction · 0.90
readFileFunction · 0.85
generateCordovaPodspecsFunction · 0.85

Tested by

no test coverage detected