Skip to content

Commit 6389902

Browse files
committed
feat(docs): pass preloader settings via search
1 parent 3e51c09 commit 6389902

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

packages/docs/src/entry.ssr.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,37 @@
11
import { renderToStream, type RenderToStreamOptions } from '@builder.io/qwik/server';
22
import Root from './root';
33

4+
// You can pass these as query parameters, as well as `preloadDebug`
5+
const preloaderSettings = [
6+
'maxPreloads',
7+
'minProbability',
8+
'maxSimultaneousPreloads',
9+
'minPreloadProbability',
10+
] as const;
11+
412
export default function (opts: RenderToStreamOptions) {
13+
const { serverData } = opts;
14+
const urlStr = serverData?.url;
15+
if (urlStr) {
16+
const { searchParams } = new URL(urlStr);
17+
if (searchParams.size) {
18+
opts = {
19+
...opts,
20+
prefetchStrategy: {
21+
...opts.prefetchStrategy,
22+
implementation: { ...opts.prefetchStrategy?.implementation },
23+
},
24+
};
25+
if (searchParams.has('preloadDebug')) {
26+
opts.prefetchStrategy!.implementation!.debug = true;
27+
}
28+
for (const type of preloaderSettings) {
29+
if (searchParams.has(type)) {
30+
opts.prefetchStrategy!.implementation![type] = Number(searchParams.get(type));
31+
}
32+
}
33+
}
34+
}
535
return renderToStream(<Root />, {
636
qwikLoader: {
737
// The docs can be long so make sure to intercept events before the end of the document.

0 commit comments

Comments
 (0)