react-native-version-update
Version:
Change Android and iOS files before build
50 lines (37 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setVersionAndroid = void 0;
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var _chalk = _interopRequireDefault(require("chalk"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const VERSION_NAME = 'versionName ';
const VERSION_CODE = 'versionCode ';
const setVersionAndroid = (basePath, pkg) => {
return new Promise((resolve, reject) => {
const buildGradlePath = _path.default.resolve(basePath, 'android', 'app', 'build.gradle');
if (!_fs.default.existsSync(buildGradlePath)) return console.log(_chalk.default.red('build.gradle not found'));
_fs.default.readFile(buildGradlePath, 'utf8', (err, gradle) => {
if (err) throw err;
gradle = gradle.set(VERSION_NAME, '"' + pkg.version + '"');
if (pkg.buildNumber) {
gradle = gradle.set(VERSION_CODE, pkg.buildNumber);
}
_fs.default.writeFile(buildGradlePath, gradle, err => {
if (err) throw err;
console.log(_chalk.default.yellow(`File ${buildGradlePath} changed`));
resolve();
});
});
});
};
exports.setVersionAndroid = setVersionAndroid;
String.prototype.set = function (procura, novo) {
const posIni = this.indexOf(procura);
let aux = this.slice(posIni, this.length);
const posFim = posIni + aux.indexOf('\n');
aux = this.slice(posIni, posFim);
return this.replace(aux, procura + novo);
};