Skip to content

Commit 4b71f51

Browse files
Varixowmertens
authored andcommitted
fix: route loader type
1 parent 3e1ae70 commit 4b71f51

File tree

10 files changed

+20
-20
lines changed

10 files changed

+20
-20
lines changed

packages/docs/src/routes/api/qwik-router/api.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@
446446
}
447447
],
448448
"kind": "TypeAlias",
449-
"content": "```typescript\nexport type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<infer VALIDATOR> ? ReadonlySignal<ValueOrPromise<VALIDATOR>> : ReadonlySignal<TYPE>;\n```",
449+
"content": "```typescript\nexport type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<infer VALIDATOR> ? AsyncComputedReadonlySignal<ValueOrPromise<VALIDATOR>> : AsyncComputedReadonlySignal<TYPE>;\n```",
450450
"editUrl": "https://github.com/QwikDev/qwik/tree/main/packages/qwik-router/src/runtime/src/types.ts",
451451
"mdFile": "router.loadersignal.md"
452452
},

packages/docs/src/routes/api/qwik-router/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,8 +1166,8 @@ export type Loader<RETURN> = {
11661166
export type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<
11671167
infer VALIDATOR
11681168
>
1169-
? ReadonlySignal<ValueOrPromise<VALIDATOR>>
1170-
: ReadonlySignal<TYPE>;
1169+
? AsyncComputedReadonlySignal<ValueOrPromise<VALIDATOR>>
1170+
: AsyncComputedReadonlySignal<TYPE>;
11711171
```
11721172

11731173
[Edit this section](https://github.com/QwikDev/qwik/tree/main/packages/qwik-router/src/runtime/src/types.ts)

packages/qwik-router/src/middleware/request-handler/middleware.request-handler.api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,15 +179,15 @@ export interface ResolveSyncValue {
179179
// (undocumented)
180180
<T>(loader: Loader_2<T>): Awaited<T> extends () => any ? never : Awaited<T>;
181181
// (undocumented)
182-
<T>(action: Action<T>): Awaited<T> | undefined;
182+
<O, I, B extends boolean>(action: Action<O, I, B>): O | undefined;
183183
}
184184

185185
// @public (undocumented)
186186
export interface ResolveValue {
187187
// (undocumented)
188188
<T>(loader: Loader_2<T>): Awaited<T> extends () => any ? never : Promise<T>;
189189
// (undocumented)
190-
<T>(action: Action<T>): Promise<T | undefined>;
190+
<O, I, B extends boolean>(action: Action<O, I, B>): Promise<O | undefined>;
191191
}
192192

193193
// @public (undocumented)

packages/qwik-router/src/middleware/request-handler/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,13 +503,13 @@ export interface RequestEventLoader<PLATFORM = QwikRouterPlatform>
503503
/** @public */
504504
export interface ResolveValue {
505505
<T>(loader: Loader<T>): Awaited<T> extends () => any ? never : Promise<T>;
506-
<T>(action: Action<T>): Promise<T | undefined>;
506+
<O, I, B extends boolean>(action: Action<O, I, B>): Promise<O | undefined>;
507507
}
508508

509509
/** @public */
510510
export interface ResolveSyncValue {
511511
<T>(loader: Loader<T>): Awaited<T> extends () => any ? never : Awaited<T>;
512-
<T>(action: Action<T>): Awaited<T> | undefined;
512+
<O, I, B extends boolean>(action: Action<O, I, B>): O | undefined;
513513
}
514514

515515
/** @public */

packages/qwik-router/src/runtime/src/contexts.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { createContextId, type Signal } from '@qwik.dev/core';
22
import type {
33
ContentState,
44
ContentStateInternal,
5+
LoaderSignal,
56
ResolvedDocumentHead,
67
RouteAction,
78
RouteLocation,
@@ -11,7 +12,7 @@ import type {
1112
} from './types';
1213

1314
export const RouteStateContext =
14-
/*#__PURE__*/ createContextId<Record<string, Signal<unknown>>>('qc-s');
15+
/*#__PURE__*/ createContextId<Record<string, LoaderSignal<unknown>>>('qc-s');
1516

1617
export const ContentContext = /*#__PURE__*/ createContextId<ContentState>('qc-c');
1718
export const ContentInternalContext =

packages/qwik-router/src/runtime/src/head.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export const resolveHead = (
3636
throw new Error('Loaders returning a promise can not be resolved for the head function.');
3737
}
3838
return data;
39-
}) as any as ResolveSyncValue;
39+
}) as ResolveSyncValue;
4040
const headProps: DocumentHeadProps = {
4141
head,
4242
withLocale: (fn) => withLocale(locale, fn),

packages/qwik-router/src/runtime/src/qwik-router-component.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import {
2626
forceStoreEffects,
2727
SerializerSymbol,
2828
type _ElementVNode,
29-
type AsyncComputedReadonlySignal,
3029
type SerializationStrategy,
3130
} from '@qwik.dev/core/internal';
3231
import { clientNavigate } from './client-navigate';
@@ -61,6 +60,7 @@ import type {
6160
Editable,
6261
EndpointResponse,
6362
LoadedRoute,
63+
LoaderSignal,
6464
MutableRouteLocation,
6565
PageModule,
6666
PreventNavigateCallback,
@@ -172,7 +172,7 @@ export const useQwikRouter = (props?: QwikRouterProps) => {
172172

173173
// This object contains the signals for the loaders
174174
// It is used for the loaders context RouteStateContext
175-
const loaderState: Record<string, AsyncComputedReadonlySignal<unknown>> = {};
175+
const loaderState: Record<string, LoaderSignal<unknown>> = {};
176176

177177
for (const [key, value] of Object.entries(env.response.loaders)) {
178178
loadersObject[key] = value;

packages/qwik-router/src/runtime/src/qwik-router.runtime.api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
55
```ts
66

7+
import type { AsyncComputedReadonlySignal } from '@qwik.dev/core/internal';
78
import { Component } from '@qwik.dev/core';
89
import { Cookie } from '@qwik.dev/router/middleware/request-handler';
910
import { CookieOptions } from '@qwik.dev/router/middleware/request-handler';
@@ -15,7 +16,6 @@ import { QRL } from '@qwik.dev/core';
1516
import { QRLEventHandlerMulti } from '@qwik.dev/core';
1617
import { QwikIntrinsicElements } from '@qwik.dev/core';
1718
import { QwikJSX } from '@qwik.dev/core';
18-
import type { ReadonlySignal } from '@qwik.dev/core';
1919
import { Render } from '@qwik.dev/core/server';
2020
import { RenderOptions } from '@qwik.dev/core/server';
2121
import { RequestEvent } from '@qwik.dev/router/middleware/request-handler';
@@ -263,7 +263,7 @@ type Loader_2<RETURN> = {
263263
export { Loader_2 as Loader }
264264

265265
// @public (undocumented)
266-
export type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<infer VALIDATOR> ? ReadonlySignal<ValueOrPromise<VALIDATOR>> : ReadonlySignal<TYPE>;
266+
export type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<infer VALIDATOR> ? AsyncComputedReadonlySignal<ValueOrPromise<VALIDATOR>> : AsyncComputedReadonlySignal<TYPE>;
267267

268268
// Warning: (ae-forgotten-export) The symbol "MenuModuleLoader" needs to be exported by the entry point index.d.ts
269269
//

packages/qwik-router/src/runtime/src/types.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@ import type {
22
NoSerialize,
33
QRL,
44
QwikIntrinsicElements,
5-
ReadonlySignal,
65
Signal,
76
ValueOrPromise,
87
} from '@qwik.dev/core';
9-
import type { SerializationStrategy } from '@qwik.dev/core/internal';
8+
import type { AsyncComputedReadonlySignal, SerializationStrategy } from '@qwik.dev/core/internal';
109
import type {
1110
EnvGetter,
1211
RequestEvent,
@@ -810,8 +809,8 @@ export type FailReturn<T> = T & Failed;
810809

811810
/** @public */
812811
export type LoaderSignal<TYPE> = TYPE extends () => ValueOrPromise<infer VALIDATOR>
813-
? ReadonlySignal<ValueOrPromise<VALIDATOR>>
814-
: ReadonlySignal<TYPE>;
812+
? AsyncComputedReadonlySignal<ValueOrPromise<VALIDATOR>>
813+
: AsyncComputedReadonlySignal<TYPE>;
815814

816815
/** @public */
817816
export type Loader<RETURN> = {

packages/qwik-router/src/runtime/src/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { SimpleURL } from './types';
1+
import type { LoaderSignal, SimpleURL } from './types';
22

33
import { createAsyncComputed$, isBrowser } from '@qwik.dev/core';
44
import {
@@ -74,7 +74,7 @@ export const createLoaderSignal = (
7474
serializationStrategy: SerializationStrategy,
7575
manifestHash: string,
7676
container?: ClientContainer
77-
) => {
77+
): LoaderSignal<unknown> => {
7878
return createAsyncComputed$(
7979
async () => {
8080
if (isBrowser && loadersObject[loaderId] === _UNINITIALIZED) {
@@ -87,5 +87,5 @@ export const createLoaderSignal = (
8787
container: container as ClientContainer,
8888
serializationStrategy,
8989
}
90-
);
90+
) as LoaderSignal<unknown>;
9191
};

0 commit comments

Comments
 (0)