@@ -47,6 +47,31 @@ namespace :npm do
47
47
end
48
48
end
49
49
50
+ desc "Bump version"
51
+ task :bump_version , [ :package , :version ] do |t , args |
52
+ require "json"
53
+ package = args [ :package ] or raise "package name is required"
54
+ version = args [ :version ] or raise "version is required"
55
+ pkg_dir = "#{ Dir . pwd } /packages/npm-packages/#{ package } "
56
+ pkg_json = "#{ pkg_dir } /package.json"
57
+ package = JSON . parse ( File . read ( pkg_json ) )
58
+ old_version = package [ "version" ]
59
+ pkg_name = package [ "name" ]
60
+ package [ "version" ] = version
61
+ File . write ( pkg_json , JSON . pretty_generate ( package ) + "\n " )
62
+
63
+ # Update package-lock.json
64
+ Dir . chdir ( pkg_dir ) { sh "npm install" }
65
+ # Update README.md and other docs
66
+ %x(git grep -l #{ pkg_name } @#{ old_version } ) . split . each do |file |
67
+ content = File . read ( file )
68
+ next_nightly = Date . today . strftime ( "%Y-%m-%d" )
69
+ content . gsub! ( /#{ pkg_name } @#{ old_version } -\d {4}-\d {2}-\d {2}-a/ , "#{ pkg_name } @#{ version } -#{ next_nightly } -a" )
70
+ content . gsub! ( /#{ pkg_name } @#{ old_version } / , "#{ pkg_name } @#{ version } " )
71
+ File . write ( file , content )
72
+ end
73
+ end
74
+
50
75
desc "Build all npm packages"
51
76
multitask :all => NPM_PACKAGES . map { |pkg | pkg [ :name ] }
52
77
end
0 commit comments