Skip to content

Commit

Permalink
fix(solid): run stream in request event async ctx
Browse files Browse the repository at this point in the history
Signed-off-by: Marc MacLeod <[email protected]>
  • Loading branch information
marbemac committed Feb 2, 2024
1 parent 1cdc248 commit 973c8c0
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 17 deletions.
5 changes: 5 additions & 0 deletions .changeset/brave-lamps-play.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@ssrx/solid': patch
---

Wrap the stream in the solid request event async ctx so that cache function from solid-router can be used in v0.11+.
2 changes: 1 addition & 1 deletion examples/solid-router-simple/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"dependencies": {
"@hono/node-server": "^1.7.0",
"@solidjs/meta": "~0.29.3",
"@solidjs/router": "0.10.10",
"@solidjs/router": "0.11.2",
"@ssrx/solid": "latest",
"hono": "3.12.9",
"solid-js": "1.8.12"
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-solid-router/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"@ssrx/renderer": "^0.4.0"
},
"devDependencies": {
"@solidjs/router": "0.10.10",
"@solidjs/router": "0.11.2",
"esbuild-plugin-solid": "0.5.0"
}
}
2 changes: 1 addition & 1 deletion packages/solid/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"lint": "eslint ."
},
"peerDependencies": {
"solid-js": "*"
"solid-js": ">=1.8"
},
"dependencies": {
"@ssrx/renderer": "^0.4.0",
Expand Down
18 changes: 11 additions & 7 deletions packages/solid/src/server/stream.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
import type { RenderToStreamFn } from '@ssrx/renderer/server';
import { injectIntoStream } from '@ssrx/streaming';
import { renderToStream as renderToSolidStream } from 'solid-js/web';
/* @ts-expect-error no types */
import { provideRequestEvent } from 'solid-js/web/storage';

export const renderToStream: RenderToStreamFn<{
nonce?: string;
renderId?: string;
onCompleteShell?: (info: { write: (v: string) => void }) => void;
onCompleteAll?: (info: { write: (v: string) => void }) => void;
}> = async ({ req, app, injectToStream, opts }) => {
const stream = renderToSolidStream(() => app(), opts);
const { readable, writable } = new TransformStream();
stream.pipeTo(writable);
return provideRequestEvent(req, () => {
const stream = renderToSolidStream(() => app(), opts);
const { readable, writable } = new TransformStream();
stream.pipeTo(writable);

return {
stream: injectToStream ? injectIntoStream(req, readable, injectToStream) : readable,
statusCode: () => 200,
};
return {
stream: injectToStream ? injectIntoStream(req, readable, injectToStream) : readable,
statusCode: () => 200,
};
});
};
14 changes: 7 additions & 7 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3405,12 +3405,12 @@ __metadata:
languageName: node
linkType: hard

"@solidjs/router@npm:0.10.10":
version: 0.10.10
resolution: "@solidjs/router@npm:0.10.10"
"@solidjs/router@npm:0.11.2":
version: 0.11.2
resolution: "@solidjs/router@npm:0.11.2"
peerDependencies:
solid-js: ^1.8.6
checksum: bc0e8d5b160b5cc0704574c0194055b712745cad147fe5795e53b80fe44e8b04b4fcd93e75794701d81a299c8d9fdd8eb3473581f7f5e5993b4fb9a69c9e2ffb
checksum: d367a1ed1f04eea58b48990d15e49957dacab35446cb5661d4971fe1cac0a46209ea8e58d2f0752956222cfa043c3261d497d932d387e056259c5f2625f8529b
languageName: node
linkType: hard

Expand Down Expand Up @@ -3438,7 +3438,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "@ssrx/plugin-solid-router@workspace:packages/plugin-solid-router"
dependencies:
"@solidjs/router": "npm:0.10.10"
"@solidjs/router": "npm:0.11.2"
"@ssrx/renderer": "npm:^0.4.0"
esbuild-plugin-solid: "npm:0.5.0"
peerDependencies:
Expand Down Expand Up @@ -3585,7 +3585,7 @@ __metadata:
"@ssrx/vite": "npm:^0.6.0"
solid-js: "npm:1.8.12"
peerDependencies:
solid-js: "*"
solid-js: ">=1.8"
languageName: unknown
linkType: soft

Expand Down Expand Up @@ -14354,7 +14354,7 @@ __metadata:
dependencies:
"@hono/node-server": "npm:^1.7.0"
"@solidjs/meta": "npm:~0.29.3"
"@solidjs/router": "npm:0.10.10"
"@solidjs/router": "npm:0.11.2"
"@ssrx/solid": "npm:latest"
"@ssrx/vite": "npm:latest"
hono: "npm:3.12.9"
Expand Down

0 comments on commit 973c8c0

Please sign in to comment.