@nx/react-native
Version:
31 lines (30 loc) • 1.85 kB
JavaScript
/**
* @deprecated use `nx run @nx/react-native:upgrade` instead.
* TODO (@xiongemi): remove this generator for nx v19
* This function is a destructive command that replace React Native iOS and Android code with latest.
* It would replace the Android and iOS folder entirely.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.reactNativeUpgradeNativeGenerator = reactNativeUpgradeNativeGenerator;
const devkit_1 = require("@nx/devkit");
const fs_1 = require("fs");
const pod_install_task_1 = require("../../utils/pod-install-task");
const chmod_android_gradle_files_1 = require("../../utils/chmod-android-gradle-files");
const create_native_files_1 = require("./lib/create-native-files");
async function reactNativeUpgradeNativeGenerator(host, schema) {
devkit_1.logger.warn(`Please run 'nx run @nx/react-native:upgrade ${schema.name}' instead.`);
const { projectType, root: appProjectRoot } = (0, devkit_1.readProjectConfiguration)(host, schema.name);
const iosProjectRoot = (0, devkit_1.joinPathFragments)(host.root, appProjectRoot, 'ios');
const androidProjectRoot = (0, devkit_1.joinPathFragments)(host.root, appProjectRoot, 'android');
if (projectType !== 'application' ||
!(0, fs_1.existsSync)(iosProjectRoot) ||
!(0, fs_1.existsSync)(androidProjectRoot)) {
throw new Error(`Could not upgrade React Native code for ${schema.name}`);
}
(0, create_native_files_1.createNativeFiles)(host, schema, appProjectRoot);
const podInstallTask = (0, pod_install_task_1.runPodInstall)(iosProjectRoot, schema.install);
const chmodTaskGradlew = (0, chmod_android_gradle_files_1.chmodAndroidGradlewFilesTask)(androidProjectRoot);
return (0, devkit_1.runTasksInSerial)(podInstallTask, chmodTaskGradlew);
}
exports.default = reactNativeUpgradeNativeGenerator;
;