Files
react-native/packages/react-native-popup-menu-android/scripts/prepublish-popup-menu-android.js
Tim Yung cc9074884a RN: Add @noflow to Node.js Scripts (#51779)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/51779

Adds `noflow` to a bunch of Node.js script files.

In the future, these files could be migrated to use `flow strict-local` or `flow strict` using comment syntax for type annotations. But for now, adding `noflow` makes it explicit that these are known to not be typechecked.

Changelog:
[Internal]

Reviewed By: SamChou19815

Differential Revision: D75883703

fbshipit-source-id: a8fed3aaa9c55ecda919a705940f8b34504cb07c
2025-06-04 12:03:52 -07:00

55 lines
1.7 KiB
JavaScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @noflow
*/
/*
* This script is used to update the android/build.gradle.kts file
* with the versions from the libs.versions.toml file.
*
* This is needed because this package is consumed from source from
* external users and we don't want to have several SDK version around to
* maintain.
*
* It's invoked as a prepublish script for this package.
*/
function extractVersion(tomlContent, regex) {
const match = tomlContent.match(regex);
return match && match[1] ? match[1] : null;
}
const fs = require('fs');
const buildGradleKtsPath = 'android/build.gradle.kts';
const libsVersionsTomlPath = '../react-native/gradle/libs.versions.toml';
console.log(
`Updating ${buildGradleKtsPath} with versions from ${libsVersionsTomlPath}...`,
);
let gradleContent = fs.readFileSync(buildGradleKtsPath, 'utf8');
const tomlContent = fs.readFileSync(libsVersionsTomlPath, 'utf8');
const compileSdk = extractVersion(tomlContent, /compileSdk\s*=\s*"(\d+)"/);
const minSdk = extractVersion(tomlContent, /minSdk\s*=\s*"(\d+)"/);
const buildTools = extractVersion(tomlContent, /buildTools\s*=\s*"([\d.]+)"/);
gradleContent = gradleContent
.replace('libs.versions.compileSdk.get().toInt()', compileSdk)
.replace('libs.versions.minSdk.get().toInt()', minSdk)
.replace('libs.versions.buildTools.get()', `"${buildTools}"`)
.replace(
'project(":packages:react-native:ReactAndroid")',
'"com.facebook.react:react-android"',
);
fs.writeFileSync(buildGradleKtsPath, gradleContent);
console.log('Done!');