react_on_rails 16.2.0.beta.8 → 16.2.0.beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -13
  3. data/CLAUDE.md +136 -5
  4. data/CONTRIBUTING.md +3 -1
  5. data/Gemfile.lock +1 -1
  6. data/Steepfile +4 -0
  7. data/analysis/rake-task-duplicate-analysis.md +149 -0
  8. data/bin/ci-run-failed-specs +6 -4
  9. data/bin/ci-switch-config +4 -3
  10. data/knip.ts +1 -1
  11. data/lib/generators/react_on_rails/base_generator.rb +5 -119
  12. data/lib/generators/react_on_rails/generator_helper.rb +29 -0
  13. data/lib/generators/react_on_rails/install_generator.rb +5 -180
  14. data/lib/generators/react_on_rails/js_dependency_manager.rb +354 -0
  15. data/lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt +19 -0
  16. data/lib/generators/react_on_rails/templates/base/base/config/{shakapacker.yml → shakapacker.yml.tt} +18 -2
  17. data/lib/generators/react_on_rails/templates/base/base/config/webpack/serverWebpackConfig.js.tt +38 -4
  18. data/lib/react_on_rails/configuration.rb +82 -8
  19. data/lib/react_on_rails/dev/pack_generator.rb +1 -0
  20. data/lib/react_on_rails/dev/server_manager.rb +1 -0
  21. data/lib/react_on_rails/doctor.rb +94 -4
  22. data/lib/react_on_rails/engine.rb +2 -5
  23. data/lib/react_on_rails/system_checker.rb +7 -4
  24. data/lib/react_on_rails/utils.rb +54 -0
  25. data/lib/react_on_rails/version.rb +1 -1
  26. data/react_on_rails_pro/Gemfile.lock +3 -3
  27. data/react_on_rails_pro/lib/react_on_rails_pro/version.rb +1 -1
  28. data/react_on_rails_pro/package.json +1 -1
  29. data/react_on_rails_pro/spec/dummy/Gemfile.lock +3 -3
  30. data/react_on_rails_pro/spec/dummy/bin/shakapacker-precompile-hook +19 -0
  31. data/react_on_rails_pro/spec/dummy/config/shakapacker.yml +5 -0
  32. data/sig/react_on_rails/dev/file_manager.rbs +15 -0
  33. data/sig/react_on_rails/dev/pack_generator.rbs +19 -0
  34. data/sig/react_on_rails/dev/process_manager.rbs +22 -0
  35. data/sig/react_on_rails/dev/server_manager.rbs +39 -0
  36. data/sig/react_on_rails/generators/js_dependency_manager.rbs +123 -0
  37. metadata +11 -3
@@ -0,0 +1,123 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ReactOnRails
4
+ module Generators
5
+ # Type signatures for JsDependencyManager module
6
+ #
7
+ # This module provides common functionality for managing JavaScript dependencies
8
+ # in Rails generators using the package_json gem (available via shakapacker).
9
+ module JsDependencyManager
10
+ # Core React dependencies required for React on Rails
11
+ REACT_DEPENDENCIES: Array[String]
12
+
13
+ # CSS processing dependencies for webpack
14
+ CSS_DEPENDENCIES: Array[String]
15
+
16
+ # Development-only dependencies for hot reloading (Webpack)
17
+ DEV_DEPENDENCIES: Array[String]
18
+
19
+ # Rspack core dependencies (only installed when --rspack flag is used)
20
+ RSPACK_DEPENDENCIES: Array[String]
21
+
22
+ # Rspack development dependencies for hot reloading
23
+ RSPACK_DEV_DEPENDENCIES: Array[String]
24
+
25
+ # TypeScript dependencies (only installed when --typescript flag is used)
26
+ TYPESCRIPT_DEPENDENCIES: Array[String]
27
+
28
+ private
29
+
30
+ # Sets up JavaScript dependencies by adding and installing packages
31
+ #
32
+ # This method orchestrates the entire dependency setup process:
33
+ # 1. Adds all required packages to package.json
34
+ # 2. Runs package manager install
35
+ #
36
+ # @return [void]
37
+ def setup_js_dependencies: () -> void
38
+
39
+ # Adds all JavaScript dependencies to package.json
40
+ #
41
+ # This method calls individual add_*_dependencies methods in sequence.
42
+ # All errors are handled gracefully with warnings rather than exceptions.
43
+ #
44
+ # @return [void]
45
+ def add_js_dependencies: () -> void
46
+
47
+ # Adds the react-on-rails package to package.json
48
+ #
49
+ # Uses version matching for stable releases, or latest for pre-releases.
50
+ # Adds error message to GeneratorMessages if package addition fails.
51
+ #
52
+ # @return [void]
53
+ def add_react_on_rails_package: () -> void
54
+
55
+ # Adds React dependencies to package.json
56
+ #
57
+ # Adds error message to GeneratorMessages if package addition fails.
58
+ #
59
+ # @return [void]
60
+ def add_react_dependencies: () -> void
61
+
62
+ # Adds CSS processing dependencies to package.json
63
+ #
64
+ # Adds error message to GeneratorMessages if package addition fails.
65
+ #
66
+ # @return [void]
67
+ def add_css_dependencies: () -> void
68
+
69
+ # Adds Rspack dependencies to package.json
70
+ #
71
+ # Only called when --rspack flag is set.
72
+ # Adds error message to GeneratorMessages if package addition fails.
73
+ #
74
+ # @return [void]
75
+ def add_rspack_dependencies: () -> void
76
+
77
+ # Adds TypeScript dependencies to package.json as dev dependencies
78
+ #
79
+ # Only called when --typescript flag is set.
80
+ # Adds error message to GeneratorMessages if package addition fails.
81
+ #
82
+ # @return [void]
83
+ def add_typescript_dependencies: () -> void
84
+
85
+ # Adds development dependencies to package.json
86
+ #
87
+ # Chooses between Webpack or Rspack dev dependencies based on --rspack flag.
88
+ # Adds error message to GeneratorMessages if package addition fails.
89
+ #
90
+ # @return [void]
91
+ def add_dev_dependencies: () -> void
92
+
93
+ # Adds a single package using package_json gem
94
+ #
95
+ # This method is used internally for adding the react-on-rails package
96
+ # with version-specific handling (react-on-rails@VERSION).
97
+ # For batch operations, use add_packages instead.
98
+ #
99
+ # @param package [String] Package specifier (e.g., "react-on-rails@16.0.0")
100
+ # @param dev [bool] Whether to add as dev dependency
101
+ # @return [bool] true if successful, false otherwise
102
+ def add_package: (String package, ?dev: bool) -> bool
103
+
104
+ # Adds multiple packages at once using package_json gem
105
+ #
106
+ # Delegates to GeneratorHelper's add_npm_dependencies for better
107
+ # package manager abstraction and batch processing efficiency.
108
+ #
109
+ # @param packages [Array<String>] Package names to add
110
+ # @param dev [bool] Whether to add as dev dependencies
111
+ # @return [bool] true if successful, false otherwise
112
+ def add_packages: (Array[String] packages, ?dev: bool) -> bool
113
+
114
+ # Installs JavaScript dependencies using package_json gem
115
+ #
116
+ # Always available via shakapacker dependency chain.
117
+ # Adds warning to GeneratorMessages if installation fails.
118
+ #
119
+ # @return [bool] true if successful, false otherwise
120
+ def install_js_dependencies: () -> bool
121
+ end
122
+ end
123
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: react_on_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 16.2.0.beta.8
4
+ version: 16.2.0.beta.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Gordon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-11-17 00:00:00.000000000 Z
11
+ date: 2025-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -140,6 +140,7 @@ files:
140
140
  - Steepfile
141
141
  - TODO.md
142
142
  - WARP.md
143
+ - analysis/rake-task-duplicate-analysis.md
143
144
  - app/helpers/react_on_rails_helper.rb
144
145
  - bin/ci-local
145
146
  - bin/ci-rerun-failures
@@ -167,6 +168,7 @@ files:
167
168
  - lib/generators/react_on_rails/generator_helper.rb
168
169
  - lib/generators/react_on_rails/generator_messages.rb
169
170
  - lib/generators/react_on_rails/install_generator.rb
171
+ - lib/generators/react_on_rails/js_dependency_manager.rb
170
172
  - lib/generators/react_on_rails/react_no_redux_generator.rb
171
173
  - lib/generators/react_on_rails/react_with_redux_generator.rb
172
174
  - lib/generators/react_on_rails/templates/.eslintrc
@@ -190,7 +192,7 @@ files:
190
192
  - lib/generators/react_on_rails/templates/base/base/bin/shakapacker-precompile-hook
191
193
  - lib/generators/react_on_rails/templates/base/base/bin/switch-bundler
192
194
  - lib/generators/react_on_rails/templates/base/base/config/initializers/react_on_rails.rb.tt
193
- - lib/generators/react_on_rails/templates/base/base/config/shakapacker.yml
195
+ - lib/generators/react_on_rails/templates/base/base/config/shakapacker.yml.tt
194
196
  - lib/generators/react_on_rails/templates/base/base/config/webpack/clientWebpackConfig.js.tt
195
197
  - lib/generators/react_on_rails/templates/base/base/config/webpack/commonWebpackConfig.js.tt
196
198
  - lib/generators/react_on_rails/templates/base/base/config/webpack/development.js.tt
@@ -606,6 +608,7 @@ files:
606
608
  - react_on_rails_pro/spec/dummy/bin/setup
607
609
  - react_on_rails_pro/spec/dummy/bin/shakapacker
608
610
  - react_on_rails_pro/spec/dummy/bin/shakapacker-dev-server
611
+ - react_on_rails_pro/spec/dummy/bin/shakapacker-precompile-hook
609
612
  - react_on_rails_pro/spec/dummy/bin/spring
610
613
  - react_on_rails_pro/spec/dummy/bin/sprockets
611
614
  - react_on_rails_pro/spec/dummy/bin/term_display
@@ -972,7 +975,12 @@ files:
972
975
  - sig/react_on_rails.rbs
973
976
  - sig/react_on_rails/configuration.rbs
974
977
  - sig/react_on_rails/controller.rbs
978
+ - sig/react_on_rails/dev/file_manager.rbs
979
+ - sig/react_on_rails/dev/pack_generator.rbs
980
+ - sig/react_on_rails/dev/process_manager.rbs
981
+ - sig/react_on_rails/dev/server_manager.rbs
975
982
  - sig/react_on_rails/error.rbs
983
+ - sig/react_on_rails/generators/js_dependency_manager.rbs
976
984
  - sig/react_on_rails/git_utils.rbs
977
985
  - sig/react_on_rails/helper.rbs
978
986
  - sig/react_on_rails/json_parse_error.rbs