universal_renderer 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5fa544d66ff988bec74e5bb3219bc9fef83bfd4b4049559478134b138c73ade
4
- data.tar.gz: 159dfc977add1ede83e0dc3e3c37332556c1e0b0b127a0cc8a47923f676e1e49
3
+ metadata.gz: 551cd8e80275fa95b8c3f66672f4a4262a25f5f0038fe4c45375b9bc852fbabe
4
+ data.tar.gz: bad53819a7dfdbdb10fbe1d3317e3877fcb05dc4fc2663ed5954e4975d3bd5b3
5
5
  SHA512:
6
- metadata.gz: fafcf155308586b524e8b2a158add8cdc4b80a012c9cdcf9d35d38c2e2d5d9f204c99407430a7dfb65143a7f4f2d8838788a3e7d6741c9140688d6175baf3b73
7
- data.tar.gz: 8f952d4175fcf095e2aeb04fcf3e2d6d67a804e86613ad2a2a605623eef62e14249de60d639a1019396fa50b4761609bb67cc6b5efd86eec6508eba938278d64
6
+ metadata.gz: 0eecc4335c6c69929077c77db58fd22e7dbc9db04eeb78efa16826e2b8a35425c270990c96141adf842db4a5d725eacda04f277edbab60f7df41b0580a9b1252
7
+ data.tar.gz: 4df736ee5b781353f2543f00badc3efbdecd1eebb66a2e6405ff8136599a0f1136ef2fc52dc2d27732cbf7c84bf15a3eb904d3303e7367e1b7c8923fdf0d176c
data/README.md CHANGED
@@ -12,22 +12,12 @@ UniversalRenderer helps you forward rendering requests to external SSR services,
12
12
 
13
13
  ## Features
14
14
 
15
- - **Static and streaming SSR** support
15
+ - **Streaming SSR** support
16
16
  - **Configurable SSR server endpoint** and timeouts
17
17
  - **Simple API** for passing data between Rails and your SSR service
18
18
  - **Automatic fallback** to client-side rendering if SSR fails
19
19
  - **View helpers** for easy integration into your layouts
20
20
 
21
- ## Requirements
22
-
23
- > **Heads-up ⚠️**  The JavaScript side of UniversalRenderer is **Bun-native**.
24
- >
25
- > • You **must** run the SSR server with **Bun ≥ 1.2**.
26
- >
27
- > • The exported helpers call Bun's built-in HTTP router and `Response` implementation; they **will not boot under Node, Deno, or Cloudflare Workers**.
28
- >
29
- > • The Ruby gem is runtime-agnostic and continues to work on every platform – only the SSR service requires Bun.
30
-
31
21
  ## Installation
32
22
 
33
23
  1. Add to your Gemfile:
@@ -93,13 +83,13 @@ end
93
83
  ```erb
94
84
  <%# "ssr/index" %>
95
85
 
96
- <%# Inject SSR snippets using the provided helpers. When streaming is enabled
97
- these render HTML placeholders (<!-- SSR_HEAD --> / <!-- SSR_BODY -->);
98
- otherwise they output the sanitised HTML returned by the SSR service. %>
86
+ <%# Inject SSR snippets using the provided helpers %>
87
+ <%# When streaming is enabled these render HTML placeholders %>
88
+ <%# Otherwise they output the sanitised HTML returned by the SSR service %>
99
89
 
100
- <head>
90
+ <%= content_for :head do %>
101
91
  <%= ssr_head %>
102
- </head>
92
+ <% end %>
103
93
 
104
94
  <div id="root">
105
95
  <%= ssr_body %>
@@ -145,7 +135,7 @@ To set up the SSR server for your Rails application:
145
135
  query_data.forEach(({ key, data }) => queryClient.setQueryData(key, data));
146
136
  const state = dehydrate(queryClient);
147
137
 
148
- const jsx = sheet.collectStyles(
138
+ const app = sheet.collectStyles(
149
139
  <HelmetProvider context={helmetContext}>
150
140
  <Metadata url={url} />
151
141
  <QueryClientProvider client={queryClient}>
@@ -157,7 +147,7 @@ To set up the SSR server for your Rails application:
157
147
  </HelmetProvider>,
158
148
  );
159
149
 
160
- return { jsx, helmetContext, sheet, queryClient };
150
+ return { app, helmetContext, sheet, queryClient };
161
151
  }
162
152
  ```
163
153
 
@@ -198,18 +188,10 @@ To set up the SSR server for your Rails application:
198
188
  import { head, transform } from "@/ssr/utils";
199
189
  import { renderToString } from "react-dom/server.node";
200
190
  import { createServer } from "universal-renderer";
201
- import { createServer as createViteServer } from "vite";
202
-
203
- const vite = await createViteServer({
204
- server: { middlewareMode: true },
205
- appType: "custom",
206
- });
207
-
208
- await createServer({
209
- port: 3001,
210
- middleware: vite.middlewares,
211
191
 
192
+ const app = await createServer({
212
193
  setup: (await import("@/ssr/setup")).default,
194
+
213
195
  render: ({ app, helmet, sheet }) => {
214
196
  const root = renderToString(app);
215
197
  const styles = sheet.getStyleTags();
@@ -218,11 +200,14 @@ To set up the SSR server for your Rails application:
218
200
  body: `${root}\n${styles}`,
219
201
  };
220
202
  },
203
+
221
204
  cleanup: ({ sheet, queryClient }) => {
222
205
  sheet?.seal();
223
206
  queryClient?.clear();
224
207
  },
225
208
  });
209
+
210
+ app.listen(3001);
226
211
  ```
227
212
 
228
213
  5. Build the SSR bundle:
@@ -1,3 +1,3 @@
1
1
  module UniversalRenderer
2
- VERSION = "0.4.2".freeze
2
+ VERSION = "0.4.3".freeze
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universal_renderer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - thaske
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-05-23 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: loofah
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '7.1'
33
33
  - - "<"
34
34
  - !ruby/object:Gem::Version
35
- version: '8.0'
35
+ version: '9.0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  version: '7.1'
43
43
  - - "<"
44
44
  - !ruby/object:Gem::Version
45
- version: '8.0'
45
+ version: '9.0'
46
46
  description: Provides helper methods and configuration to forward rendering requests
47
47
  from a Rails app to an external SSR server and return the response.
48
48
  email:
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
95
  requirements: []
96
- rubygems_version: 3.6.2
96
+ rubygems_version: 3.6.9
97
97
  specification_version: 4
98
98
  summary: Facilitates Server-Side Rendering (SSR) in Rails applications.
99
99
  test_files: []