Fix 4 typecheck errors in createNitroQuery

- Import path for SendMessageComposer pointed at ../SendMessageComposer
  (non-existent); the actual module lives at ../nitro/SendMessageComposer.
  Worked at runtime via Vite alias, broke at tsgo.
- request factory was typed as () => unknown so passing the return into
  SendMessageComposer (which expects IMessageComposer<unknown[]>)
  failed the cast.
- The Pick<NitroQueryConfig, ...> bundle handed to awaitNitroResponse
  included 'key', which isn't part of that subset.
- When no select is provided, resolve(event) leaked TParser through the
  TData channel; cast to TData (the default TData=TParser fallback is
  fine for typed callers, but the explicit-generic case needed it).

Net tsgo error count: 100 -> 97.
This commit is contained in:
simoleo89
2026-05-11 20:51:29 +02:00
parent b5eeb68b9b
commit 96b61ff67b
+5 -5
View File
@@ -1,6 +1,6 @@
import { GetCommunication, IMessageEvent, MessageEvent } from '@nitrots/nitro-renderer';
import { GetCommunication, IMessageComposer, IMessageEvent, MessageEvent } from '@nitrots/nitro-renderer';
import { QueryKey, useQuery, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
import { SendMessageComposer } from '../SendMessageComposer';
import { SendMessageComposer } from '../nitro/SendMessageComposer';
export interface NitroQueryConfig<TParser extends IMessageEvent, TData>
{
@@ -14,7 +14,7 @@ export interface NitroQueryConfig<TParser extends IMessageEvent, TData>
* `null` skips sending (useful when the server pushes the event
* unprompted — you only want subscription, not a request).
*/
request: (() => unknown) | null;
request: (() => IMessageComposer<unknown[]>) | null;
/**
* The parser class to listen for as the response.
*/
@@ -64,7 +64,7 @@ export const useNitroQuery = <TParser extends IMessageEvent, TData = TParser>(
const options: UseQueryOptions<TData, Error, TData> = {
queryKey: key,
queryFn: () => awaitNitroResponse<TParser, TData>({ key, request, parser, select, accept, timeoutMs }),
queryFn: () => awaitNitroResponse<TParser, TData>({ request, parser, select, accept, timeoutMs }),
enabled,
staleTime,
refetchOnMount
@@ -105,7 +105,7 @@ export const awaitNitroResponse = <TParser extends IMessageEvent, TData>(
try
{
resolve(select ? select(event) : (event));
resolve(select ? select(event) : (event as unknown as TData));
}
catch(err)
{