Skip to content

Commit eee80af

Browse files
fix(angular-query): fix type of isSuccess, isError, isPending, isIdle on mutation result (#7923)
* fix(angular-query): fix type of isSuccess, isError, isPending, isIdle * ci: apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
1 parent 189e0c5 commit eee80af

File tree

3 files changed

+69
-44
lines changed

3 files changed

+69
-44
lines changed

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

Lines changed: 5 additions & 4 deletions
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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import { type InputSignal, isSignal, untracked } from '@angular/core'
1+
import {
2+
type InputSignal,
3+
type Signal,
4+
isSignal,
5+
untracked,
6+
} from '@angular/core'
27
import { SIGNAL, signalSetFn } from '@angular/core/primitives/signals'
38
import type { ComponentFixture } from '@angular/core/testing'
49

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

8792
export const expectSignals = <T extends Record<string, any>>(
8893
obj: T,
89-
expected: Partial<{ [K in keyof T]: ReturnType<T[K]> }>,
94+
expected: Partial<{
95+
[K in keyof T]: T[K] extends Signal<any> ? ReturnType<T[K]> : never
96+
}>,
9097
): void => {
9198
expect(evaluateSignals(obj)).toMatchObject(expected)
9299
}

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

Lines changed: 55 additions & 38 deletions
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,59 +233,73 @@ export interface BaseMutationNarrowing<
230233
TVariables = unknown,
231234
TContext = unknown,
232235
> {
233-
isSuccess: (
234-
this: CreateMutationResult<TData, TError, TVariables, TContext>,
235-
) => this is CreateMutationResult<
236-
TData,
237-
TError,
238-
TVariables,
239-
TContext,
240-
CreateStatusBasedMutationResult<
241-
'success',
236+
isSuccess: SignalFunction<
237+
(
238+
this: CreateMutationResult<TData, TError, TVariables, TContext>,
239+
) => this is CreateMutationResult<
242240
TData,
243241
TError,
244242
TVariables,
245-
TContext
243+
TContext,
244+
CreateStatusBasedMutationResult<
245+
'success',
246+
TData,
247+
TError,
248+
TVariables,
249+
TContext
250+
>
246251
>
247252
>
248-
isError: (
249-
this: CreateMutationResult<TData, TError, TVariables, TContext>,
250-
) => this is CreateMutationResult<
251-
TData,
252-
TError,
253-
TVariables,
254-
TContext,
255-
CreateStatusBasedMutationResult<
256-
'error',
253+
isError: SignalFunction<
254+
(
255+
this: CreateMutationResult<TData, TError, TVariables, TContext>,
256+
) => this is CreateMutationResult<
257257
TData,
258258
TError,
259259
TVariables,
260-
TContext
260+
TContext,
261+
CreateStatusBasedMutationResult<
262+
'error',
263+
TData,
264+
TError,
265+
TVariables,
266+
TContext
267+
>
261268
>
262269
>
263-
isPending: (
264-
this: CreateMutationResult<TData, TError, TVariables, TContext>,
265-
) => this is CreateMutationResult<
266-
TData,
267-
TError,
268-
TVariables,
269-
TContext,
270-
CreateStatusBasedMutationResult<
271-
'pending',
270+
isPending: SignalFunction<
271+
(
272+
this: CreateMutationResult<TData, TError, TVariables, TContext>,
273+
) => this is CreateMutationResult<
272274
TData,
273275
TError,
274276
TVariables,
275-
TContext
277+
TContext,
278+
CreateStatusBasedMutationResult<
279+
'pending',
280+
TData,
281+
TError,
282+
TVariables,
283+
TContext
284+
>
276285
>
277286
>
278-
isIdle: (
279-
this: CreateMutationResult<TData, TError, TVariables, TContext>,
280-
) => this is CreateMutationResult<
281-
TData,
282-
TError,
283-
TVariables,
284-
TContext,
285-
CreateStatusBasedMutationResult<'idle', TData, TError, TVariables, TContext>
287+
isIdle: SignalFunction<
288+
(
289+
this: CreateMutationResult<TData, TError, TVariables, TContext>,
290+
) => this is CreateMutationResult<
291+
TData,
292+
TError,
293+
TVariables,
294+
TContext,
295+
CreateStatusBasedMutationResult<
296+
'idle',
297+
TData,
298+
TError,
299+
TVariables,
300+
TContext
301+
>
302+
>
286303
>
287304
}
288305

0 commit comments

Comments
 (0)