@qwik.dev/router 2.0.0-beta.35 → 2.0.0-beta.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -227,16 +227,22 @@ function viteAdapter(opts) {
227
227
  `if (args.includes('--quiet')) ssgOpts.log = 'quiet';`,
228
228
  `if (args.includes('--debug')) ssgOpts.log = 'debug';`,
229
229
  ``,
230
- `if (isMainThread) {`,
231
- ` await runSsg({`,
232
- ` render,`,
233
- ` qwikRouterConfig,`,
234
- ` workerFilePath: new URL(import.meta.url).href,`,
235
- ` ...ssgOpts,`,
236
- ` });`,
237
- `} else {`,
238
- ` await startWorker({ render, qwikRouterConfig });`,
239
- `}`
230
+ // Fire-and-forget instead of top-level await. On the worker/edge SSR target Vite
231
+ // inlines dynamic imports, and Rollup then reads the inlined `./system` namespace
232
+ // before it is initialized across a top-level await. See rollup/rollup#4166.
233
+ // runSsg/startWorker keep the process alive (worker handles) and call process.exit.
234
+ `const ssgRun = isMainThread`,
235
+ ` ? runSsg({`,
236
+ ` render,`,
237
+ ` qwikRouterConfig,`,
238
+ ` workerFilePath: new URL(import.meta.url).href,`,
239
+ ` ...ssgOpts,`,
240
+ ` })`,
241
+ ` : startWorker({ render, qwikRouterConfig });`,
242
+ `ssgRun.catch((err) => {`,
243
+ ` console.error(err);`,
244
+ ` process.exit(1);`,
245
+ `});`
240
246
  ].join("\n");
241
247
  },
242
248
  buildStart() {
@@ -16,9 +16,6 @@ const useDocumentHead = () => useContext(DocumentHeadContext);
16
16
  const useLocation = () => useContext(RouteLocationContext);
17
17
  const useNavigate = () => useContext(RouteNavigateContext);
18
18
  const usePreventNavigateQrl = (fn) => {
19
- if (!__EXPERIMENTAL__.preventNavigate) {
20
- throw new Error('usePreventNavigate$ is experimental and must be enabled with `experimental: ["preventNavigate"]` in the `qwikVite` plugin.');
21
- }
22
19
  const registerPreventNav = useContext(RoutePreventNavigateContext);
23
20
  useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(() => {
24
21
  const fn2 = _captures[0], registerPreventNav2 = _captures[1];
@@ -1630,6 +1630,9 @@ The request origin "${inputOrigin}" does not match the server origin "${origin}"
1630
1630
  const result = await render({
1631
1631
  base: requestEv.basePathname + "build/",
1632
1632
  stream,
1633
+ streaming: isStatic ? {
1634
+ outOfOrder: false
1635
+ } : void 0,
1633
1636
  serverData,
1634
1637
  containerAttributes: {
1635
1638
  ["q:render"]: isStatic ? "static" : "",
@@ -1809,6 +1812,7 @@ function getQwikRouterServerDataWithDeps(deps, requestEv) {
1809
1812
  return {
1810
1813
  url: reconstructedUrl.href,
1811
1814
  requestHeaders,
1815
+ renderMode: deps.getRequestMode(requestEv),
1812
1816
  locale: locale(),
1813
1817
  nonce,
1814
1818
  containerAttributes: {
@@ -1842,6 +1846,7 @@ const responsePageDeps = {
1842
1846
  RequestRouteName,
1843
1847
  getRequestLoaders,
1844
1848
  getRequestLoaderSerializationStrategyMap,
1849
+ getRequestMode,
1845
1850
  getRequestRoute
1846
1851
  };
1847
1852
  function getQwikRouterServerData(...args) {
package/lib/index.d.ts CHANGED
@@ -13,7 +13,7 @@ import { QRLEventHandlerMulti } from '@qwik.dev/core';
13
13
  import { QwikIntrinsicElements } from '@qwik.dev/core';
14
14
  import { QwikJSX } from '@qwik.dev/core';
15
15
  import { Render } from '@qwik.dev/core/server';
16
- import { RenderOptions } from '@qwik.dev/core/server';
16
+ import { RenderToStreamOptions } from '@qwik.dev/core/server';
17
17
  import { RequestEvent } from '@qwik.dev/router/middleware/request-handler';
18
18
  import { RequestEventAction } from '@qwik.dev/router/middleware/request-handler';
19
19
  import { RequestEventBase } from '@qwik.dev/router/middleware/request-handler';
@@ -754,12 +754,12 @@ export declare interface QwikRouterProps {
754
754
  export declare const QwikRouterProvider: Component<QwikRouterProps>;
755
755
 
756
756
  /** @public */
757
- export declare type RendererOptions = Omit<RenderOptions, 'serverData'> & {
757
+ export declare type RendererOptions = Omit<RenderToStreamOptions, 'serverData'> & {
758
758
  serverData: ServerData;
759
759
  };
760
760
 
761
761
  /** @public */
762
- export declare type RendererOutputOptions = Omit<RenderOptions, 'serverData'> & {
762
+ export declare type RendererOutputOptions = Omit<RenderToStreamOptions, 'serverData'> & {
763
763
  serverData: ServerData & {
764
764
  documentHead?: DocumentHeadValue;
765
765
  } & Record<string, unknown>;
@@ -911,6 +911,7 @@ declare interface ServerConfig {
911
911
  export declare type ServerData = {
912
912
  url: string;
913
913
  requestHeaders: Record<string, string>;
914
+ renderMode: 'static' | 'server';
914
915
  locale: string | undefined;
915
916
  nonce: string | undefined;
916
917
  containerAttributes: Record<string, string> & {
@@ -414,9 +414,6 @@ const useQwikRouter = (props) => {
414
414
  }
415
415
  const serverHead = useServerData("documentHead");
416
416
  const manifestHash = useServerData("containerAttributes")?.["q:manifest-hash"];
417
- if (env.ev.originalUrl.pathname !== env.ev.url.pathname && !__EXPERIMENTAL__.enableRequestRewrite) {
418
- throw new Error(`enableRequestRewrite is an experimental feature and is not enabled. Please enable the feature flag by adding \`experimental: ["enableRequestRewrite"]\` to your qwikVite plugin options.`);
419
- }
420
417
  const url = new URL(urlEnv);
421
418
  const routeLocationTarget = {
422
419
  url,
@@ -1656,7 +1653,15 @@ function omitProps(obj, keys) {
1656
1653
  const createRenderer = (getOptions) => {
1657
1654
  return (opts) => {
1658
1655
  const { jsx, options } = getOptions(opts);
1659
- return renderToStream(jsx, options);
1656
+ const isStatic = opts.serverData.renderMode === "static";
1657
+ const renderOptions = isStatic ? {
1658
+ ...options,
1659
+ streaming: {
1660
+ ...options.streaming,
1661
+ outOfOrder: false
1662
+ }
1663
+ } : options;
1664
+ return renderToStream(jsx, renderOptions);
1660
1665
  };
1661
1666
  };
1662
1667
 
@@ -603,6 +603,7 @@ function getQwikRouterServerDataWithDeps(deps, requestEv) {
603
603
  return {
604
604
  url: reconstructedUrl.href,
605
605
  requestHeaders,
606
+ renderMode: deps.getRequestMode(requestEv),
606
607
  locale: locale(),
607
608
  nonce,
608
609
  containerAttributes: {
@@ -636,6 +637,7 @@ const responsePageDeps = {
636
637
  RequestRouteName,
637
638
  getRequestLoaders,
638
639
  getRequestLoaderSerializationStrategyMap,
640
+ getRequestMode,
639
641
  getRequestRoute
640
642
  };
641
643
  function getQwikRouterServerData(...args) {
@@ -1093,6 +1095,9 @@ The request origin "${inputOrigin}" does not match the server origin "${origin}"
1093
1095
  const result = await render({
1094
1096
  base: requestEv.basePathname + "build/",
1095
1097
  stream,
1098
+ streaming: isStatic ? {
1099
+ outOfOrder: false
1100
+ } : void 0,
1096
1101
  serverData,
1097
1102
  containerAttributes: {
1098
1103
  ["q:render"]: isStatic ? "static" : "",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qwik.dev/router",
3
3
  "description": "The router for Qwik.",
4
- "version": "2.0.0-beta.35",
4
+ "version": "2.0.0-beta.36",
5
5
  "bugs": "https://github.com/QwikDev/qwik/issues",
6
6
  "dependencies": {
7
7
  "@azure/functions": "3.5.1",
@@ -40,7 +40,7 @@
40
40
  "tsm": "2.3.0",
41
41
  "typescript": "5.9.3",
42
42
  "uvu": "0.5.6",
43
- "@qwik.dev/core": "2.0.0-beta.35"
43
+ "@qwik.dev/core": "2.0.0-beta.36"
44
44
  },
45
45
  "engines": {
46
46
  "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
@@ -169,7 +169,7 @@
169
169
  "main": "./lib/index.qwik.mjs",
170
170
  "peerDependencies": {
171
171
  "vite": ">=6 <9",
172
- "@qwik.dev/core": "^2.0.0-beta.35"
172
+ "@qwik.dev/core": "^2.0.0-beta.36"
173
173
  },
174
174
  "publishConfig": {
175
175
  "access": "public"