Skip to content

Commit 4e55bc6

Browse files
Add export for ReactOnRails for Node.js which supports streaming
1 parent 09c4246 commit 4e55bc6

File tree

6 files changed

+28
-8
lines changed

6 files changed

+28
-8
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import ReactOnRails from './ReactOnRails';
2+
import streamServerRenderedReactComponent from './streamServerRenderedReactComponent';
3+
4+
ReactOnRails.streamServerRenderedReactComponent = streamServerRenderedReactComponent;
5+
6+
export * from './ReactOnRails';

node_package/src/ReactOnRails.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,14 @@ ctx.ReactOnRails = {
247247
return serverRenderReactComponent(options);
248248
},
249249

250+
/**
251+
* Used by server rendering by Rails
252+
* @param options
253+
*/
254+
streamServerRenderedReactComponent() {
255+
throw new Error('streamServerRenderedReactComponent is only supported when using a bundle built for Node.js environments');
256+
},
257+
250258
/**
251259
* Used by Rails to catch errors in rendering
252260
* @param options

node_package/src/types/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ export interface ReactOnRails {
170170
): RenderReturnType;
171171
getComponent(name: string): RegisteredComponent;
172172
serverRenderReactComponent(options: RenderParams): null | string | Promise<RenderResult>;
173+
streamServerRenderedReactComponent(options: RenderParams): Readable;
173174
handleError(options: ErrorOptions): string | undefined;
174175
buildConsoleReplay(): string;
175176
registeredComponents(): Map<string, RegisteredComponent>;

package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22
"name": "react-on-rails",
33
"version": "14.1.0",
44
"description": "react-on-rails JavaScript for react_on_rails Ruby gem",
5-
"main": "node_package/lib/ReactOnRails.js",
5+
"exports": {
6+
".": {
7+
"node": "./node_package/lib/ReactOnRails.node.js",
8+
"default": "./node_package/lib/ReactOnRails.js"
9+
}
10+
},
611
"directories": {
712
"doc": "docs"
813
},

spec/dummy/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"react": "^18.2.0",
4141
"react-dom": "^18.2.0",
4242
"react-helmet": "^6.1.0",
43-
"react-on-rails": "file:.yalc/react-on-rails",
43+
"react-on-rails": "link:.yalc/react-on-rails",
4444
"react-proptypes": "^1.0.0",
4545
"react-redux": "^8.0.2",
4646
"react-router-dom": "^5.2.0",
@@ -72,12 +72,13 @@
7272
"fs": false
7373
},
7474
"scripts": {
75-
"yalc-postinstall": "yalc link react-on-rails",
75+
"preinstall": "yarn run link-source && yalc add --link react-on-rails",
76+
"link-source": "cd ../.. && yarn run build && yalc publish",
7677
"lint": "cd ../.. && yarn run lint",
7778
"format": "cd ../.. && yarn start format",
7879
"test": "yarn run build:test && yarn run lint && rspec",
7980
"build:test": "rm -rf public/webpack/test && yarn build:rescript && RAILS_ENV=test NODE_ENV=test bin/shakapacker",
80-
"build:dev": "rm -rf public/webpack/development && yarn build:rescript && RAILS_ENV=development NODE_ENV=development bin/shakapacker --watch",
81+
"build:dev": "rm -rf public/webpack/development && yarn build:rescript && RAILS_ENV=development NODE_ENV=development bin/shakapacker",
8182
"build:dev:server": "rm -rf public/webpack/development && yarn build:rescript && RAILS_ENV=development NODE_ENV=development bin/shakapacker --watch",
8283
"build:dev:watch": "rescript build -w && RAILS_ENV=development NODE_ENV=development bin/shakapacker --watch",
8384
"build:clean": "yarn build:rescript && rm -rf public/webpack || true",

spec/dummy/yarn.lock

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6451,10 +6451,9 @@ react-is@^18.0.0:
64516451
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
64526452
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
64536453

6454-
"react-on-rails@file:.yalc/react-on-rails":
6455-
version "14.0.0"
6456-
dependencies:
6457-
"@babel/runtime-corejs3" "^7.12.5"
6454+
"react-on-rails@link:.yalc/react-on-rails":
6455+
version "0.0.0"
6456+
uid ""
64586457

64596458
react-proptypes@^1.0.0:
64606459
version "1.0.0"

0 commit comments

Comments
 (0)