Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

update_sdk_dependencies.js 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const fs = require('fs');
  2. const semver = require('semver');
  3. const packageJSON = require('../package.json');
  4. const SDKPackageJSON = require('./package.json');
  5. // Skip checking these.
  6. const skipDeps = [ 'react', 'react-native' ];
  7. /**
  8. * Merges the dependency versions from the root package.json with the dependencies of the SDK package.json.
  9. */
  10. function mergeDependencyVersions() {
  11. // Updates SDK dependencies to match project dependencies.
  12. for (const key in SDKPackageJSON.dependencies) {
  13. if (SDKPackageJSON.dependencies.hasOwnProperty(key)) {
  14. SDKPackageJSON.dependencies[key] = packageJSON.dependencies[key] || packageJSON.devDependencies[key];
  15. }
  16. }
  17. // Updates SDK peer dependencies.
  18. for (const key in packageJSON.dependencies) {
  19. if (SDKPackageJSON.peerDependencies.hasOwnProperty(key) && !skipDeps.includes(key)) {
  20. SDKPackageJSON.peerDependencies[key] = packageJSON.dependencies[key];
  21. }
  22. }
  23. // Set RN peer dependency.
  24. const rnVersion = semver.parse(packageJSON.dependencies['react-native']);
  25. if (!rnVersion) {
  26. throw new Error('failed to parse React Native version');
  27. }
  28. // In RN the "major" version is the Semver minor.
  29. SDKPackageJSON.peerDependencies['react-native'] = `~0.${rnVersion.minor}.0`;
  30. // Updates SDK overrides dependencies.
  31. for (const key in packageJSON.overrides) {
  32. if (SDKPackageJSON.overrides.hasOwnProperty(key)) {
  33. SDKPackageJSON.overrides[key] = packageJSON.overrides[key];
  34. }
  35. }
  36. const data = JSON.stringify(SDKPackageJSON, null, 4);
  37. fs.writeFileSync('package.json', data);
  38. }
  39. mergeDependencyVersions();