Repository navigation
Conversation
🦋 Changeset detectedLatest commit: c2fa12b The changes in this PR will be included in the next version bump. This PR includes changesets to release 9 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
@qwik.dev/core
@qwik.dev/router
@qwik.dev/utils
eslint-plugin-qwik
create-qwik
@qwik.dev/optimizer
@qwik.dev/devtools
@qwik.dev/mcp
commit: |
|
⚡ Docs preview for c2fa12b |
In which case does it discover render deps too late? Should we preload uncertain deps together with the render ones or after? |
// product.js
const renderProduct = qrl(
() => import("./render-entry.js"),
"renderProduct"
);
// render-entry.js — facade
export { renderImpl as renderProduct } from "./render-impl.js";
// render-impl.js
export function renderImpl() {
return /* product UI */;
}The actual import path is: But the old preload graph points directly to the implementation:
// hooks.js
export function usePriceReader() {
return $(() => calculatePrice());
}
export function invoke(callback) {
return callback();
}
// Product component — pseudocode
async function renderProduct() {
const readPrice = usePriceReader();
const price = await invoke(readPrice);
return <span>{price}</span>;
}If we deferred uncertain dependencies until known render dependencies finished, we could get:
|
Compiled client wrappers can retain server context labels. Excluding them drops serializer preloads before the first server call.
7307527 to
a73ecbc
Compare
255df7c to
c2fa12b
Compare
The smart preload graph treats render-time QRL calls and future interactions alike, so navigation can compete with event-only code or discover render dependencies too late. Emit the existing event-only classification from both optimizers, derive conservative render edges from module metadata, and prioritize their bounded static/render closure in the preload queue. Unknown consumers, custom hooks, helpers and compiled libraries stay reachable.
Update the graph writer and reader together, retaining the existing SSR/client context classification. Renderer execution order stays unchanged.
Depends only on #9382. On
mainalone the production fixture's preloader is 1967 B Brotli, exceeding the existing 1800 B ceiling; with #9382 it is 1613 B. Merge #9382 first, then retarget this PR tomain. The navigation PR #9383 targetsmainindependently and is not required here.Validation:
pnpm api.update; production build passes.git diff --checkpass.The combined PR trees reproduce the original benchmark implementation; only changeset grouping and test placement differ. No new Firefox 3G/Good 2G performance comparison was run for this extraction.