8
0

update-dependencies-versions.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/usr/bin/env node
  2. /**
  3. * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
  4. * For licensing, see LICENSE.md.
  5. */
  6. /* eslint-env node */
  7. 'use strict';
  8. const path = require( 'path' );
  9. const { tools, logger } = require( '@ckeditor/ckeditor5-dev-utils' );
  10. const log = logger();
  11. const packageJsonPath = path.join( __dirname, '..', 'package.json' );
  12. log.info( 'Updating version of dependencies in "package.json"...' );
  13. let counter = 0;
  14. tools.updateJSONFile( packageJsonPath, packageJson => {
  15. const dependencies = packageJson.dependencies;
  16. for ( const packageName of Object.keys( dependencies ) ) {
  17. try {
  18. const dependencyPackageJson = require( packageName + '/package.json' );
  19. const newVersion = '^' + dependencyPackageJson.version;
  20. if ( packageJson.dependencies[ dependencyPackageJson.name ] !== newVersion ) {
  21. counter += 1;
  22. }
  23. packageJson.dependencies[ dependencyPackageJson.name ] = newVersion;
  24. } catch ( error ) {
  25. log.warning( `Package "${ packageName }" is not installed and its version cannot be updated.` );
  26. }
  27. }
  28. return packageJson;
  29. } );
  30. log.info( `Updated versions of ${ counter } packages.` );
  31. if ( counter ) {
  32. log.info( 'Committing updated "package.json" file...' );
  33. const response = tools.shExec( 'git add package.json && git commit -m "Internal: Updated dependencies."', { verbosity: 'error' } );
  34. log.info( response.trim() );
  35. } else {
  36. log.info( 'Nothing to update? It smells like troubles!' );
  37. }
  38. log.info( 'Done.' );