react_on_rails 11.0.4 → 11.0.5
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -1
- data/README.md +4 -0
- data/docs/basics/configuration.md +21 -1
- data/lib/react_on_rails/prerender_error.rb +35 -2
- data/lib/react_on_rails/version.rb +1 -1
- data/package.json +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e2e9cfdc5d161ab3706f779c18c8ce1a166b066
|
4
|
+
data.tar.gz: 6211ecc33d60cccc7d385ddcc7550a31f1502d43
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cac9f496b6163da14528c717ef9c6a87ad15d11f87cab027d3af08ebe48121345f62264cd42dcd2cb64e847a38bc07a2ccb6b5951a98b9ca4737414e1a5afe2
|
7
|
+
data.tar.gz: e692554e9375d8c789894624c86639fcc442314ccc024050fca0ee4e371a7f05e047188bed0cf24f6d32497b7ee454ad9cba07fc1d062821c720a0274d4ddd50
|
data/CHANGELOG.md
CHANGED
@@ -10,6 +10,11 @@ Changes since last non-beta release.
|
|
10
10
|
|
11
11
|
*Please add entries here for your pull requests that are not yet released.*
|
12
12
|
|
13
|
+
#### Changed
|
14
|
+
|
15
|
+
### [11.0.5] - 2018-05-11
|
16
|
+
- More detailed errors for Honeybadger and Sentry. [PR 1081](https://github.com/shakacode/react_on_rails/pull/1081) by [justin808](https://github.com/justin808).
|
17
|
+
|
13
18
|
### [11.0.4] - 2018-05-3
|
14
19
|
|
15
20
|
#### Changed
|
@@ -753,7 +758,8 @@ Best done with Object destructing:
|
|
753
758
|
##### Fixed
|
754
759
|
- Fix several generator related issues.
|
755
760
|
|
756
|
-
[Unreleased]: https://github.com/shakacode/react_on_rails/compare/11.0.
|
761
|
+
[Unreleased]: https://github.com/shakacode/react_on_rails/compare/11.0.5...master
|
762
|
+
[11.0.5]: https://github.com/shakacode/react_on_rails/compare/11.0.4...11.0.5
|
757
763
|
[11.0.4]: https://github.com/shakacode/react_on_rails/compare/11.0.3...11.0.4
|
758
764
|
[11.0.3]: https://github.com/shakacode/react_on_rails/compare/11.0.2...11.0.3
|
759
765
|
[11.0.2]: https://github.com/shakacode/react_on_rails/compare/11.0.1...11.0.2
|
data/README.md
CHANGED
@@ -697,6 +697,10 @@ If you are using [jquery-ujs](https://github.com/rails/jquery-ujs) for AJAX call
|
|
697
697
|
1. Examples in [spec/dummy/app/views/react_router](./spec/dummy/app/views/react_router) and follow to the JavaScript code in the [spec/dummy/client/app/startup/ServerRouterApp.jsx](spec/dummy/client/app/startup/ServerRouterApp.jsx).
|
698
698
|
1. [Code Splitting docs](./docs/additional-reading/code-splitting.md) for information about how to set up code splitting for server rendered routes.
|
699
699
|
|
700
|
+
## Error Handling
|
701
|
+
* All errors from ReactOnRails will be of type ReactOnRails::Error.
|
702
|
+
* Prerendering (server rendering) errors get context information for HoneyBadger and Sentry for easier debugging.
|
703
|
+
|
700
704
|
## Caching and Performance
|
701
705
|
Consider fragment and http caching of pages that contain React on Rails components. See [Caching and Performance](./docs/additional-reading/caching-and-performance.md) for more details.
|
702
706
|
|
@@ -5,7 +5,6 @@ Here is the full set of config options. This file is `/config/initializers/react
|
|
5
5
|
|
6
6
|
# NOTE: you typically will leave the commented out configurations set to their defaults.
|
7
7
|
# Thus, you only need to pay careful attention to the non-commented settings in this file.
|
8
|
-
|
9
8
|
ReactOnRails.configure do |config|
|
10
9
|
# `trace`: General debugging flag.
|
11
10
|
# The default is true for development, off otherwise.
|
@@ -61,6 +60,9 @@ ReactOnRails.configure do |config|
|
|
61
60
|
# The default is `%w( manifest.json )` as will be sufficient for most webpacker builds.
|
62
61
|
#
|
63
62
|
config.webpack_generated_files = %w( manifest.json )
|
63
|
+
|
64
|
+
# You can optionally add values to your rails_context. See example below for RenderingExtension
|
65
|
+
# config.rendering_extension = RenderingExtension
|
64
66
|
|
65
67
|
################################################################################
|
66
68
|
################################################################################
|
@@ -141,3 +143,21 @@ ReactOnRails.configure do |config|
|
|
141
143
|
end
|
142
144
|
|
143
145
|
```
|
146
|
+
|
147
|
+
Example of a RenderingExtension for custom values in the `rails_context`:
|
148
|
+
|
149
|
+
```ruby
|
150
|
+
module RenderingExtension
|
151
|
+
|
152
|
+
# Return a Hash that contains custom values from the view context that will get merged with
|
153
|
+
# the standard rails_context values and passed to all calls to generator functions used by the
|
154
|
+
# react_component and redux_store view helpers
|
155
|
+
def self.custom_context(view_context)
|
156
|
+
{
|
157
|
+
somethingUseful: view_context.session[:something_useful]
|
158
|
+
}
|
159
|
+
end
|
160
|
+
end
|
161
|
+
```
|
162
|
+
|
163
|
+
|
@@ -2,10 +2,34 @@
|
|
2
2
|
|
3
3
|
# rubocop:disable: Layout/IndentHeredoc
|
4
4
|
module ReactOnRails
|
5
|
-
class PrerenderError <
|
5
|
+
class PrerenderError < ::ReactOnRails::Error
|
6
|
+
attr_reader :component_name, :err, :props, :js_code, :console_messages
|
7
|
+
|
6
8
|
# err might be nil if JS caught the error
|
7
9
|
def initialize(component_name: nil, err: nil, props: nil,
|
8
10
|
js_code: nil, console_messages: nil)
|
11
|
+
@component_name = component_name
|
12
|
+
@err = err
|
13
|
+
@props = props
|
14
|
+
@js_code = js_code
|
15
|
+
@console_messages = console_messages
|
16
|
+
|
17
|
+
backtrace, message = calc_message(component_name, console_messages, err, js_code, props)
|
18
|
+
|
19
|
+
super([message, backtrace].compact.join("\n"))
|
20
|
+
end
|
21
|
+
|
22
|
+
def to_honeybadger_context
|
23
|
+
to_error_context
|
24
|
+
end
|
25
|
+
|
26
|
+
def raven_context
|
27
|
+
to_error_context
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def calc_message(component_name, console_messages, err, js_code, props)
|
9
33
|
message = "ERROR in SERVER PRERENDERING\n".dup
|
10
34
|
if err
|
11
35
|
# rubocop:disable Layout/IndentHeredoc
|
@@ -33,8 +57,17 @@ console messages:
|
|
33
57
|
MSG
|
34
58
|
# rubocop:enable Layout/IndentHeredoc
|
35
59
|
end
|
60
|
+
[backtrace, message]
|
61
|
+
end
|
36
62
|
|
37
|
-
|
63
|
+
def to_error_context
|
64
|
+
{
|
65
|
+
component_name: component_name,
|
66
|
+
err: err,
|
67
|
+
props: props,
|
68
|
+
js_code: js_code,
|
69
|
+
console_messages: console_messages
|
70
|
+
}
|
38
71
|
end
|
39
72
|
end
|
40
73
|
end
|
data/package.json
CHANGED
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: 11.0.
|
4
|
+
version: 11.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Gordon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|