Sha256: 8b62c3d4c0489fefc47b1a2abc3e90f569571eff6b68028c0dc7ef025e839250
Contents?: true
Size: 974 Bytes
Versions: 21
Compression:
Stored size: 974 Bytes
Contents
require 'connection_pool' require 'react/server_rendering/exec_js_renderer' require 'react/server_rendering/sprockets_renderer' module React module ServerRendering mattr_accessor :renderer, :renderer_options, :pool_size, :pool_timeout def self.reset_pool options = {size: pool_size, timeout: pool_timeout} @@pool = ConnectionPool.new(options) { create_renderer } end def self.render(component_name, props, prerender_options) @@pool.with do |renderer| renderer.render(component_name, props, prerender_options) end end def self.create_renderer renderer.new(renderer_options) end class PrerenderError < RuntimeError def initialize(component_name, props, js_message) message = ["Encountered error \"#{js_message}\" when prerendering #{component_name} with #{props}", js_message.backtrace.join("\n")].join("\n") super(message) end end end end
Version data entries
21 entries across 21 versions & 1 rubygems