Skip to content

Commit 9dc0bff

Browse files
Replace renderToString to renderToStringAsync (#10)
* update preact-render-to-string 6.4.0 * replace `renderToString` to `renderToStringAsync` fix format * fix peerDependencies * remove render block * fix jsdoc * fix: TS types for maxDepth removal --------- Co-authored-by: Ryan Christian <[email protected]>
1 parent 1a25d79 commit 9dc0bff

File tree

4 files changed

+11
-25
lines changed

4 files changed

+11
-25
lines changed

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
},
4040
"peerDependencies": {
4141
"preact": ">=10",
42-
"preact-render-to-string": ">=5"
42+
"preact-render-to-string": ">=6.4.0"
4343
},
4444
"peerDependenciesMeta": {
4545
"preact-render-to-string": {
@@ -52,6 +52,6 @@
5252
"jest-environment-jsdom": "^29.7.0",
5353
"jsdom": "^22.1.0",
5454
"preact": "10.15.1",
55-
"preact-render-to-string": "^6.2.2"
55+
"preact-render-to-string": "^6.4.0"
5656
}
57-
}
57+
}

src/prerender.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { VNode } from 'preact';
22

33
export interface PrerenderOptions {
4-
maxDepth?: number;
54
props?: Record<string, unknown>;
65
}
76

src/prerender.js

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { h, options, cloneElement } from 'preact';
2-
import renderToString from 'preact-render-to-string';
2+
import { renderToStringAsync } from 'preact-render-to-string';
33

44
let vnodeHook;
55

@@ -12,32 +12,19 @@ options.vnode = vnode => {
1212
/**
1313
* @param {ReturnType<h>} vnode The root JSX element to render (eg: `<App />`)
1414
* @param {object} [options]
15-
* @param {number} [options.maxDepth = 10] The maximum number of nested asynchronous operations to wait for before flushing
1615
* @param {object} [options.props] Additional props to merge into the root JSX element
1716
*/
1817
export default async function prerender(vnode, options) {
1918
options = options || {};
2019

21-
const maxDepth = options.maxDepth || 10;
2220
const props = options.props;
23-
let tries = 0;
2421

2522
if (typeof vnode === 'function') {
2623
vnode = h(vnode, props);
2724
} else if (props) {
2825
vnode = cloneElement(vnode, props);
2926
}
3027

31-
const render = () => {
32-
if (++tries > maxDepth) return;
33-
try {
34-
return renderToString(vnode);
35-
} catch (e) {
36-
if (e && e.then) return e.then(render);
37-
throw e;
38-
}
39-
};
40-
4128
let links = new Set();
4229
vnodeHook = ({ type, props }) => {
4330
if (type === 'a' && props && props.href && (!props.target || props.target === '_self')) {
@@ -46,7 +33,7 @@ export default async function prerender(vnode, options) {
4633
};
4734

4835
try {
49-
let html = await render();
36+
let html = await renderToStringAsync(vnode);
5037
html += `<script type="isodata"></script>`;
5138
return { html, links };
5239
} finally {

yarn.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1261,7 +1261,7 @@ has@^1.0.3:
12611261
resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6"
12621262
integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==
12631263

1264-
htm@^3.0.4:
1264+
htm@^3.1.1:
12651265
version "3.1.1"
12661266
resolved "https://registry.yarnpkg.com/htm/-/htm-3.1.1.tgz#49266582be0dc66ed2235d5ea892307cc0c24b78"
12671267
integrity sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==
@@ -1790,7 +1790,7 @@ jest-worker@^29.7.0:
17901790
merge-stream "^2.0.0"
17911791
supports-color "^8.0.0"
17921792

1793-
1793+
jest@^29.7.0:
17941794
version "29.7.0"
17951795
resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
17961796
integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
@@ -2112,10 +2112,10 @@ pkg-dir@^4.2.0:
21122112
dependencies:
21132113
find-up "^4.0.0"
21142114

2115-
preact-render-to-string@^6.2.2:
2116-
version "6.2.2"
2117-
resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-6.2.2.tgz#eb086b6db5d57468ab2c184896884fb0a818245d"
2118-
integrity sha512-YDfXQiVeYZutFR8/DpxLSbW3W6b7GgjBExRBxOOqcjrGq5rA9cziitQdNPMZe4RVMSdfBnf4hYqyeLs/KvtIuA==
2115+
preact-render-to-string@^6.4.0:
2116+
version "6.4.0"
2117+
resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-6.4.0.tgz#03cdd661d35e9ac76bed9f0e37ccceb42cae5fa5"
2118+
integrity sha512-pzDwezZaLbK371OiJjXDsZJwVOALzFX5M1wEh2Kr0pEApq5AV6bRH/DFbA/zNA7Lck/duyREPQLLvzu2G6hEQQ==
21192119
dependencies:
21202120
pretty-format "^3.8.0"
21212121

0 commit comments

Comments
 (0)