UNPKG

react-native-integrate

Version:

Automate integration of additional code into React Native projects

40 lines (39 loc) 1.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.importAndroidVersionCode = importAndroidVersionCode; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const picocolors_1 = __importDefault(require("picocolors")); const prompter_1 = require("../../../prompter"); const getProjectPath_1 = require("../../getProjectPath"); function importAndroidVersionCode(projectPath) { try { // get android version code from build.gradle const buildGradlePath = path_1.default.join(projectPath, 'android/app/build.gradle'); const buildGradle = fs_1.default.readFileSync(buildGradlePath, 'utf8'); const versionCodeMatch = buildGradle.match(/versionCode (.*)/); const versionCode = versionCodeMatch?.[1]; if (!versionCode) return null; return { id: 'androidVersionCode', title: 'Android Version Code', value: versionCode, apply: () => setAndroidVersionCode(versionCode), }; } catch (_e) { return null; } } async function setAndroidVersionCode(version) { const buildGradlePath = path_1.default.join((0, getProjectPath_1.getProjectPath)(), 'android/app/build.gradle'); const buildGradle = fs_1.default.readFileSync(buildGradlePath, 'utf8'); const newBuildGradle = buildGradle.replace(/versionCode (.*)/, `versionCode ${version}`); fs_1.default.writeFileSync(buildGradlePath, newBuildGradle); (0, prompter_1.logMessage)(`set ${picocolors_1.default.yellow('versionCode')} to ${picocolors_1.default.yellow(version)}`); return Promise.resolve(); }