@qwik.dev/router 2.0.0-beta.25 → 2.0.0-beta.26

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.
@@ -1,5 +1,5 @@
1
1
  import { jsx, Fragment, jsxs } from '@qwik.dev/core/jsx-runtime';
2
- import { component$, useErrorBoundary, useOnWindow, $, Slot, createContextId, useContext, implicit$FirstArg, noSerialize, useVisibleTask$, useServerData, useSignal, untrack, sync$, isDev, withLocale, event$, isServer, useStyles$, useStore, isBrowser, useContextProvider, useTask$, getLocale, jsx as jsx$1, SkipRender, createElement } from '@qwik.dev/core';
2
+ import { component$, useErrorBoundary, useOnWindow, $, Slot, createContextId, useContext, implicit$FirstArg, useVisibleTask$, noSerialize, useServerData, useSignal, untrack, sync$, isDev, withLocale, event$, isServer, useStyles$, useStore, isBrowser, useContextProvider, useTask$, getLocale, jsx as jsx$1, SkipRender, createElement } from '@qwik.dev/core';
3
3
  import { g as getClientNavPath, s as shouldPreload, p as preloadRouteBundles, l as loadClientData, i as isPromise, a as isSamePath, c as createLoaderSignal, t as toUrl, b as isSameOrigin, d as loadRoute, D as DEFAULT_LOADERS_SERIALIZATION_STRATEGY, C as CLIENT_DATA_CACHE, Q as Q_ROUTE, e as clientNavigate, f as QFN_KEY, h as QACTION_KEY, j as QDATA_KEY } from './chunks/routing.qwik.mjs';
4
4
  import * as qwikRouterConfig from '@qwik-router-config';
5
5
  import { _getContextContainer, SerializerSymbol, _UNINITIALIZED, _hasStoreEffects, forceStoreEffects, _waitUntilRendered, _getContextHostElement, _getContextEvent, _serialize, _deserialize, _resolveContextWithoutSequentialScope } from '@qwik.dev/core/internal';
@@ -596,6 +596,11 @@ const useQwikRouter = (props) => {
596
596
  window._qRouterScrollEnabled = true;
597
597
  }
598
598
  }
599
+ if (dest.href !== routeLocation.url.href) {
600
+ const newUrl = new URL(dest.href);
601
+ routeInternal.value.dest = newUrl;
602
+ routeLocation.url = newUrl;
603
+ }
599
604
  return;
600
605
  }
601
606
  routeInternal.value = {
@@ -689,7 +689,7 @@ export declare interface ServerRequestEvent<T = unknown> {
689
689
  }
690
690
 
691
691
  /** @public */
692
- export declare type ServerRequestMode = 'dev' | 'static' | 'server';
692
+ export declare type ServerRequestMode = 'static' | 'server';
693
693
 
694
694
  /** @public */
695
695
  export declare type ServerResponseHandler<T = any> = (status: number, headers: Headers, cookies: Cookie, resolve: (response: T) => void, requestEv: RequestEventInternal) => WritableStream<Uint8Array>;
@@ -1,7 +1,7 @@
1
1
  import { isServer } from '@qwik.dev/core/build';
2
2
  import { i as isPromise, j as QDATA_KEY, Q as Q_ROUTE, f as QFN_KEY, k as QLOADER_KEY, h as QACTION_KEY, d as loadRoute } from '../../chunks/routing.qwik.mjs';
3
3
  import { inlinedQrl } from '@qwik.dev/core';
4
- import { _serialize, _UNINITIALIZED, _deserialize, _verifySerializable } from '@qwik.dev/core/internal';
4
+ import { _serialize, isDev, _UNINITIALIZED, _deserialize, _verifySerializable } from '@qwik.dev/core/internal';
5
5
  import { L as LoadedRouteProp } from '../../chunks/types.qwik.mjs';
6
6
  import { _asyncRequestStore as _asyncRequestStore$1, ServerError as ServerError$1, RedirectMessage as RedirectMessage$1, RewriteMessage as RewriteMessage$1, AbortMessage as AbortMessage$1 } from '@qwik.dev/router/middleware/request-handler';
7
7
  import { g as getErrorHtml, m as minimalHtmlResponse } from '../../chunks/error-handler.mjs';
@@ -343,7 +343,7 @@ async function runNext(requestEv, rebuildRouteInfo, resolve) {
343
343
  }
344
344
  return e;
345
345
  }
346
- if (getRequestMode(requestEv) !== "dev") {
346
+ if (!isDev) {
347
347
  try {
348
348
  if (!requestEv.headersSent) {
349
349
  requestEv.headers.set("content-type", "text/html; charset=utf-8");
@@ -528,8 +528,7 @@ function createRequestEvent(serverRequestEv, loadedRoute, requestHandlers, baseP
528
528
  );
529
529
  }
530
530
  if (loaders[id] === _UNINITIALIZED) {
531
- const isDev = getRequestMode(requestEv) === "dev";
532
- await getRouteLoaderPromise(loaderOrAction, loaders, requestEv, isDev);
531
+ await getRouteLoaderPromise(loaderOrAction, loaders, requestEv);
533
532
  }
534
533
  }
535
534
  return loaders[id];
@@ -577,7 +576,10 @@ function createRequestEvent(serverRequestEv, loadedRoute, requestHandlers, baseP
577
576
  rewrite: (pathname2) => {
578
577
  check();
579
578
  if (pathname2.startsWith("http")) {
580
- throw new Error("Rewrite does not support absolute urls");
579
+ throw new ServerError$1(
580
+ 400,
581
+ isDev ? "Rewrite does not support absolute urls" : "Bad Request"
582
+ );
581
583
  }
582
584
  sharedMap.set(RequestEvIsRewrite, true);
583
585
  return exit(new RewriteMessage$1(pathname2.replace(/\/+/g, "/")));
@@ -618,7 +620,7 @@ function createRequestEvent(serverRequestEv, loadedRoute, requestHandlers, baseP
618
620
  },
619
621
  getWritableStream: () => {
620
622
  if (writableStream === null) {
621
- if (serverRequestEv.mode === "dev") {
623
+ if (isDev) {
622
624
  const serverTiming = sharedMap.get(RequestEvShareServerTiming);
623
625
  if (serverTiming) {
624
626
  headers.set(
@@ -879,7 +881,6 @@ function actionsMiddleware(routeActions) {
879
881
  }
880
882
  const { method } = requestEv;
881
883
  const loaders = getRequestLoaders(requestEv);
882
- const isDev = getRequestMode(requestEv) === "dev";
883
884
  if (isDev && method === "GET") {
884
885
  if (requestEv.query.has(QACTION_KEY)) {
885
886
  console.warn(
@@ -900,7 +901,7 @@ function actionsMiddleware(routeActions) {
900
901
  `Expected request data for the action id ${selectedActionId} to be an object`
901
902
  );
902
903
  }
903
- const result = await runValidators(requestEv, action.__validators, data, isDev);
904
+ const result = await runValidators(requestEv, action.__validators, data);
904
905
  if (!result.success) {
905
906
  loaders[selectedActionId] = requestEv.fail(result.status ?? 500, result.error);
906
907
  } else {
@@ -927,23 +928,21 @@ function loadersMiddleware(routeLoaders) {
927
928
  return;
928
929
  }
929
930
  const loaders = getRequestLoaders(requestEv);
930
- const isDev = getRequestMode(requestEv) === "dev";
931
931
  if (routeLoaders.length > 0) {
932
932
  const resolvedLoadersPromises = routeLoaders.map(
933
- (loader) => getRouteLoaderPromise(loader, loaders, requestEv, isDev)
933
+ (loader) => getRouteLoaderPromise(loader, loaders, requestEv)
934
934
  );
935
935
  await Promise.all(resolvedLoadersPromises);
936
936
  }
937
937
  };
938
938
  }
939
- async function getRouteLoaderPromise(loader, loaders, requestEv, isDev) {
939
+ async function getRouteLoaderPromise(loader, loaders, requestEv) {
940
940
  const loaderId = loader.__id;
941
941
  loaders[loaderId] = runValidators(
942
942
  requestEv,
943
943
  loader.__validators,
944
- void 0,
944
+ void 0
945
945
  // data
946
- isDev
947
946
  ).then((res) => {
948
947
  if (res.success) {
949
948
  if (isDev) {
@@ -973,7 +972,7 @@ async function getRouteLoaderPromise(loader, loaders, requestEv, isDev) {
973
972
  loadersSerializationStrategy.set(loaderId, loader.__serializationStrategy);
974
973
  return loaders[loaderId];
975
974
  }
976
- async function runValidators(requestEv, validators, data, isDev) {
975
+ async function runValidators(requestEv, validators, data) {
977
976
  let lastResult = {
978
977
  success: true,
979
978
  data
@@ -1005,7 +1004,6 @@ async function runServerFunction(ev) {
1005
1004
  const serverFnHash = ev.query.get(QFN_KEY);
1006
1005
  if (serverFnHash && ev.request.headers.get("X-QRL") === serverFnHash && ev.request.headers.get("Content-Type") === "application/qwik-json") {
1007
1006
  ev.exit();
1008
- const isDev = getRequestMode(ev) === "dev";
1009
1007
  const data = await ev.parseBody();
1010
1008
  if (!Array.isArray(data) || !(Array.isArray(data[0]) || data[0] === void 0)) {
1011
1009
  throw ev.error(500, "Invalid request");
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.25",
4
+ "version": "2.0.0-beta.26",
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.25"
43
+ "@qwik.dev/core": "2.0.0-beta.26"
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": ">=5 <8",
172
- "@qwik.dev/core": "^2.0.0-beta.25"
172
+ "@qwik.dev/core": "^2.0.0-beta.26"
173
173
  },
174
174
  "publishConfig": {
175
175
  "access": "public"