44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
|
|
const { withDangerousMod } = require('@expo/config-plugins');
|
||
|
|
const fs = require('fs');
|
||
|
|
const path = require('path');
|
||
|
|
|
||
|
|
// Patch jcore-react-native's build.gradle to remove the legacy flatDir block
|
||
|
|
// and jniLibs.srcDirs. The 'libs' directory no longer exists in the package —
|
||
|
|
// dependencies are fetched from Maven — but the stale config causes Gradle
|
||
|
|
// warnings and can stall dependency resolution on newer Gradle versions.
|
||
|
|
const withJcorePatch = (config) =>
|
||
|
|
withDangerousMod(config, [
|
||
|
|
'android',
|
||
|
|
async (config) => {
|
||
|
|
const root = config.modRequest.projectRoot;
|
||
|
|
const gradlePath = path.join(
|
||
|
|
root,
|
||
|
|
'node_modules',
|
||
|
|
'jcore-react-native',
|
||
|
|
'android',
|
||
|
|
'build.gradle',
|
||
|
|
);
|
||
|
|
|
||
|
|
if (!fs.existsSync(gradlePath)) return config;
|
||
|
|
|
||
|
|
let content = fs.readFileSync(gradlePath, 'utf-8');
|
||
|
|
|
||
|
|
// Remove flatDir block
|
||
|
|
content = content.replace(
|
||
|
|
/repositories\s*\{\s*flatDir\s*\{\s*dirs\s+['"]libs['"]\s*\}\s*\}/,
|
||
|
|
'',
|
||
|
|
);
|
||
|
|
|
||
|
|
// Remove jniLibs.srcDirs line and its enclosing sourceSets block if it becomes empty
|
||
|
|
content = content.replace(
|
||
|
|
/\s*sourceSets\s*\{\s*main\s*\{\s*jniLibs\.srcDirs\s*=\s*\['libs'\]\s*\}\s*\}/,
|
||
|
|
'',
|
||
|
|
);
|
||
|
|
|
||
|
|
fs.writeFileSync(gradlePath, content);
|
||
|
|
return config;
|
||
|
|
},
|
||
|
|
]);
|
||
|
|
|
||
|
|
module.exports = withJcorePatch;
|