class ReactOnRails::PrerenderError
Constants
- MAX_ERROR_SNIPPET_TO_LOG
Attributes
TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/
TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/
TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/
TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/
TODO: Consider remove providing original ‘err` as already have access to `self.cause` blog.honeybadger.io/nested-errors-in-ruby-with-exception-cause/
Public Class Methods
Source
# File lib/react_on_rails/prerender_error.rb, line 14 def initialize(component_name: nil, err: nil, props: nil, js_code: nil, console_messages: nil) @component_name = component_name @err = err @props = props @js_code = js_code @console_messages = console_messages backtrace, message = calc_message(component_name, console_messages, err, js_code, props) super([message, backtrace].compact.join("\n")) end
err might be nil if JS caught the error
Public Instance Methods
Source
# File lib/react_on_rails/prerender_error.rb, line 31 def raven_context to_error_context end
Source
# File lib/react_on_rails/prerender_error.rb, line 35 def to_error_context result = { component_name: component_name, err: err, props: props, js_code: js_code, console_messages: console_messages } result.merge!(err.to_error_context) if err.respond_to?(:to_error_context) result end
Source
# File lib/react_on_rails/prerender_error.rb, line 27 def to_honeybadger_context to_error_context end
Private Instance Methods
Source
# File lib/react_on_rails/prerender_error.rb, line 50 def calc_message(component_name, console_messages, err, js_code, props) message = +"ERROR in SERVER PRERENDERING\n" if err message << <<~MSG Encountered error: #{err.inspect} MSG backtrace = if Utils.full_text_errors_enabled? err.backtrace.join("\n") else "#{Rails.backtrace_cleaner.clean(err.backtrace).join("\n")}\n" + Rainbow("The rest of the backtrace is hidden. " \ "To see the full backtrace, set FULL_TEXT_ERRORS=true.").red end else backtrace = nil end message << <<~MSG when prerendering #{component_name} with props: #{Utils.smart_trim(props, MAX_ERROR_SNIPPET_TO_LOG)} code: #{Utils.smart_trim(js_code, MAX_ERROR_SNIPPET_TO_LOG)} MSG if console_messages message << <<~MSG console messages: #{console_messages} MSG end [backtrace, message] end