react_on_rails 11.0.4 → 11.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|