123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /* eslint-disable guard-for-in, no-continue */
- /* global __dirname */
-
- const fs = require('fs');
- const path = require('path');
- const semver = require('semver');
-
-
- const pathToPackageJSON = path.resolve(__dirname, '../../../package.json');
-
- const packageJSON = require(pathToPackageJSON);
-
- const RNSDKpackageJSON = require(path.resolve(__dirname, './package.json'));
-
-
- /**
- * Updates dependencies from the app package.json with the peer dependencies of the RNSDK package.json.
- */
- function updateDependencies() {
- let updated = false;
-
- for (const key in RNSDKpackageJSON.peerDependencies) {
- if (!packageJSON.dependencies.hasOwnProperty(key)) {
- packageJSON.dependencies[key] = RNSDKpackageJSON.peerDependencies[key];
- updated = true;
- }
-
- if (!semver.valid(packageJSON.dependencies[key])
- && packageJSON.dependencies[key] !== RNSDKpackageJSON.peerDependencies[key]) {
- packageJSON.dependencies[key] = RNSDKpackageJSON.peerDependencies[key];
- updated = true;
-
- console.log(`
- ⚠️We changed ${key} version number from ${packageJSON.dependencies[key]} to ${RNSDKpackageJSON.peerDependencies[key]}`
- );
-
- continue;
- }
-
- if (semver.satisfies(RNSDKpackageJSON.peerDependencies[key], `=${packageJSON.dependencies[key]}`)) {
- continue;
- }
-
- if (semver.satisfies(RNSDKpackageJSON.peerDependencies[key], `>${packageJSON.dependencies[key]}`)) {
- packageJSON.dependencies[key] = RNSDKpackageJSON.peerDependencies[key];
- updated = true;
-
- console.log(`${key} is now set to ${RNSDKpackageJSON.peerDependencies[key]}`);
- }
-
- if (!semver.valid(RNSDKpackageJSON.peerDependencies[key])
- && RNSDKpackageJSON.peerDependencies[key].includes('github')
- && packageJSON.dependencies[key] !== RNSDKpackageJSON.peerDependencies[key]) {
- packageJSON.dependencies[key] = RNSDKpackageJSON.peerDependencies[key];
- updated = true;
-
- console.log(
- `A fix for ${key} is available on ${RNSDKpackageJSON.peerDependencies[key]}.
- This is now set on your end.`
- );
- }
- }
-
- packageJSON.overrides = packageJSON.overrides || {};
-
- for (const key in RNSDKpackageJSON.overrides) {
- if (!packageJSON.overrides.hasOwnProperty(key)) {
- packageJSON.overrides[key] = RNSDKpackageJSON.overrides[key];
- updated = true;
- }
- }
-
- if (!updated) {
- console.log('All your dependencies are up to date!');
-
- return;
- }
-
- console.log(`
- =========================
- 🚀 Your project was updated!
- 🛠 Make sure you run npm install
- 📱 If you are building for iOS run cd ios && pod install to link them.
- =========================
- `);
-
- packageJSON.dependencies = Object.keys(packageJSON.dependencies)
- .sort()
- .reduce((item, itemKey) => {
- item[itemKey] = packageJSON.dependencies[itemKey];
-
- return item;
- }, {});
-
- fs.writeFileSync(pathToPackageJSON, JSON.stringify(packageJSON, null, 2));
-
- console.log(
- 'All needed dependencies have been updated. \nPlease run npm install.'
- );
- }
-
- updateDependencies();
|