class SvelteOnRails::RenderServerSide
def render_compiled_file(props = {})
def render_compiled_file(props = {}) require 'base64' require 'json' props_enc = Base64.strict_encode64(props.to_json).strip cmd = [ 'node', '/Users/christian/projects-gmbh/gems/svelte-on-rails/svelte-on-rails-gem/lib/svelte_on_rails/render.js', compiled_js_file, props_enc, SvelteOnRails::Configuration.instance.rails_root ].join(' ') stdout, stderr, status = Open3.capture3(cmd, chdir: self.class.gem_app_dir) unless status.to_s.match(/^pid [0-9]+ exit 0$/) raise "Render Svelte Server-side =>\n#{cmd}\n\nError output from render.js (stderr) =>\n+++\n" + stderr + "+++\n\n" end begin res = JSON.parse(stdout) if File.exist?(compiled_css_file) res['css'] = File.read(compiled_css_file) end return res rescue JSON::ParserError => e raise "Render Svelte Server-side: Expected JSON, got: «#{stdout}»" end end