Skip to content

Commit

Permalink
RN Update script updates react version implicitly (#610)
Browse files Browse the repository at this point in the history
* Travis Driven Development

* Updated rn-cli.config to support old RN versions
  • Loading branch information
rotemmiz authored Mar 7, 2018
1 parent 2ff67bf commit 2ce10e4
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 15 deletions.
4 changes: 2 additions & 2 deletions detox/test/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
"build:android": "detox build --configuration android.emu.release"
},
"dependencies": {
"react": "16.2.0",
"react-native": "0.53.3"
"react": "16.0.0-beta.5",
"react-native": "0.49.3"
},
"devDependencies": {
"detox": "^7.0.0",
Expand Down
4 changes: 2 additions & 2 deletions examples/demo-react-native-jest/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
"test-android": "detox build --configuration android.emu.debug && detox test --configuration android.emu.debug -l verbose"
},
"dependencies": {
"react": "16.2.0",
"react-native": "0.53.3"
"react": "16.0.0-beta.5",
"react-native": "0.49.3"
},
"devDependencies": {
"babel-jest": "21.2.0",
Expand Down
7 changes: 6 additions & 1 deletion examples/demo-react-native-jest/rn-cli.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
const metroBundler = require('metro');
let metroBundler;
try {
metroBundler = require('metro');
} catch (ex) {
metroBundler = require('metro-bundler');
}

module.exports = {
getBlacklistRE: function() {
Expand Down
4 changes: 2 additions & 2 deletions examples/demo-react-native/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"start": "react-native start"
},
"dependencies": {
"react": "^16.2.0",
"react-native": "^0.53.3"
"react": "16.0.0-beta.5",
"react-native": "0.49.3"
},
"devDependencies": {
"mocha": "^4.0.1",
Expand Down
7 changes: 6 additions & 1 deletion examples/demo-react-native/rn-cli.config.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
const metroBundler = require('metro');
let metroBundler;
try {
metroBundler = require('metro');
} catch (ex) {
metroBundler = require('metro-bundler');
}

module.exports = {
getBlacklistRE: function() {
Expand Down
47 changes: 40 additions & 7 deletions scripts/change_react_native_version.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,46 @@
let fs = require('fs');
let path = require('path');
const https = require('https');

const projectPath = process.argv[2];
const reactNativeVersion = process.argv[3];

const filePath = path.join(process.cwd(), projectPath, 'package.json');
let packageJson = require(filePath);
async function run() {
const projectPath = process.argv[2];
const reactNativeVersion = process.argv[3];

console.log(`Changing react-native dependency in ${filePath} to ${reactNativeVersion}`);
const filePath = path.join(process.cwd(), projectPath, 'package.json');
console.log(`Trying to change react-native dependency in ${filePath}`);

packageJson.dependencies['react-native'] = reactNativeVersion;
fs.writeFileSync(filePath, JSON.stringify(packageJson, null, 2));
let packageJson = require(filePath);

const data = await fetch(`https://registry.npmjs.org/react-native/${reactNativeVersion}/`);
const reactVersion = data.peerDependencies.react;

console.log(`Changed dependencies:
react-native: ${reactNativeVersion}
react: ${reactVersion}`);

packageJson.dependencies['react-native'] = reactNativeVersion;
packageJson.dependencies['react'] = reactVersion;
fs.writeFileSync(filePath, JSON.stringify(packageJson, null, 2));
}

async function fetch(url) {
return new Promise((resolve, reject) => {
https.get(url, res => {
res.setEncoding('utf8');
let body = "";
res.on('data', data => {
body += data;
});
res.on('end', () => {
body = JSON.parse(body);
resolve(body);
});
res.on('error', (error) => {
reject(error);
});
});
});
}

run();

0 comments on commit 2ce10e4

Please sign in to comment.