You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

update_sdk_dependencies.js 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const fs = require('fs');
  2. const packageJSON = require('../package.json');
  3. const SDKPackageJSON = require('./package.json');
  4. /**
  5. * Merges the dependency versions from the root package.json with the dependencies of the SDK package.json.
  6. */
  7. function mergeDependencyVersions() {
  8. // Updates SDK dependencies to match project dependencies.
  9. for (const key in SDKPackageJSON.dependencies) {
  10. if (SDKPackageJSON.dependencies.hasOwnProperty(key)) {
  11. SDKPackageJSON.dependencies[key] = packageJSON.dependencies[key] || packageJSON.devDependencies[key];
  12. }
  13. }
  14. // Updates SDK peer dependencies.
  15. for (const key in packageJSON.dependencies) {
  16. if (SDKPackageJSON.peerDependencies.hasOwnProperty(key)) {
  17. // Updates all peer dependencies except react and react-native.
  18. if (key !== 'react' && key !== 'react-native') {
  19. SDKPackageJSON.peerDependencies[key] = packageJSON.dependencies[key];
  20. }
  21. }
  22. }
  23. // Updates SDK overrides dependencies.
  24. for (const key in packageJSON.overrides) {
  25. if (SDKPackageJSON.overrides.hasOwnProperty(key)) {
  26. SDKPackageJSON.overrides[key] = packageJSON.overrides[key];
  27. }
  28. }
  29. const data = JSON.stringify(SDKPackageJSON, null, 4);
  30. fs.writeFileSync('package.json', data);
  31. }
  32. mergeDependencyVersions();