Skip to content

Commit 081cba0

Browse files
committed
fix(angular-query): fix type of isSuccess, isError, isPending, isIdle
1 parent 683c85e commit 081cba0

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

packages/angular-query-experimental/etc/angular-query-experimental.api.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,16 @@ import type { ThrowOnError } from '@tanstack/query-core';
3636
// @public (undocumented)
3737
export interface BaseMutationNarrowing<TData = unknown, TError = DefaultError, TVariables = unknown, TContext = unknown> {
3838
// (undocumented)
39-
isError: (this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'error', TData, TError, TVariables, TContext>>;
39+
isError: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'error', TData, TError, TVariables, TContext>>>;
4040
// (undocumented)
41-
isIdle: (this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'idle', TData, TError, TVariables, TContext>>;
41+
isIdle: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'idle', TData, TError, TVariables, TContext>>>;
4242
// (undocumented)
43-
isPending: (this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'pending', TData, TError, TVariables, TContext>>;
43+
isPending: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'pending', TData, TError, TVariables, TContext>>>;
44+
// Warning: (ae-forgotten-export) The symbol "SignalFunction" needs to be exported by the entry point index.d.ts
4445
// Warning: (ae-forgotten-export) The symbol "CreateStatusBasedMutationResult" needs to be exported by the entry point index.d.ts
4546
//
4647
// (undocumented)
47-
isSuccess: (this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'success', TData, TError, TVariables, TContext>>;
48+
isSuccess: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TContext>) => this is CreateMutationResult<TData, TError, TVariables, TContext, CreateStatusBasedMutationResult<'success', TData, TError, TVariables, TContext>>>;
4849
}
4950

5051
// @public (undocumented)

packages/angular-query-experimental/src/__tests__/test-utils.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { type InputSignal, isSignal, untracked } from '@angular/core'
1+
import { type InputSignal, type Signal, isSignal, untracked } from '@angular/core'
22
import { SIGNAL, signalSetFn } from '@angular/core/primitives/signals'
33
import type { ComponentFixture } from '@angular/core/testing'
44

@@ -86,7 +86,7 @@ function evaluateSignals<T extends Record<string, any>>(
8686

8787
export const expectSignals = <T extends Record<string, any>>(
8888
obj: T,
89-
expected: Partial<{ [K in keyof T]: ReturnType<T[K]> }>,
89+
expected: Partial<{ [K in keyof T]: T[K] extends Signal<any> ? ReturnType<T[K]> : never }>,
9090
): void => {
9191
expect(evaluateSignals(obj)).toMatchObject(expected)
9292
}

packages/angular-query-experimental/src/types.ts

+11-8
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import type {
1414
QueryObserverOptions,
1515
QueryObserverResult,
1616
} from '@tanstack/query-core'
17+
import type { Signal } from '@angular/core'
1718
import type { MapToSignals } from './signal-proxy'
1819

1920
/**
@@ -221,6 +222,8 @@ type CreateStatusBasedMutationResult<
221222
{ status: TStatus }
222223
>
223224

225+
type SignalFunction<T extends () => any> = T & Signal<ReturnType<T>>;
226+
224227
/**
225228
* @public
226229
*/
@@ -230,7 +233,7 @@ export interface BaseMutationNarrowing<
230233
TVariables = unknown,
231234
TContext = unknown,
232235
> {
233-
isSuccess: (
236+
isSuccess: SignalFunction<(
234237
this: CreateMutationResult<TData, TError, TVariables, TContext>,
235238
) => this is CreateMutationResult<
236239
TData,
@@ -244,8 +247,8 @@ export interface BaseMutationNarrowing<
244247
TVariables,
245248
TContext
246249
>
247-
>
248-
isError: (
250+
>>
251+
isError: SignalFunction<(
249252
this: CreateMutationResult<TData, TError, TVariables, TContext>,
250253
) => this is CreateMutationResult<
251254
TData,
@@ -259,8 +262,8 @@ export interface BaseMutationNarrowing<
259262
TVariables,
260263
TContext
261264
>
262-
>
263-
isPending: (
265+
>>
266+
isPending: SignalFunction<(
264267
this: CreateMutationResult<TData, TError, TVariables, TContext>,
265268
) => this is CreateMutationResult<
266269
TData,
@@ -274,16 +277,16 @@ export interface BaseMutationNarrowing<
274277
TVariables,
275278
TContext
276279
>
277-
>
278-
isIdle: (
280+
>>
281+
isIdle: SignalFunction<(
279282
this: CreateMutationResult<TData, TError, TVariables, TContext>,
280283
) => this is CreateMutationResult<
281284
TData,
282285
TError,
283286
TVariables,
284287
TContext,
285288
CreateStatusBasedMutationResult<'idle', TData, TError, TVariables, TContext>
286-
>
289+
>>
287290
}
288291

289292
/**

0 commit comments

Comments
 (0)