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