Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/angular/auto-refetching/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@angular/core": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/basic-persister/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@angular/core": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"@tanstack/angular-query-persist-client": "^5.62.7",
"@tanstack/query-sync-storage-persister": "^5.74.0",
"rxjs": "^7.8.2",
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/basic/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@angular/core": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
4 changes: 2 additions & 2 deletions examples/angular/devtools-panel/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@angular/router": "^19.2.4",
"@tanstack/angular-query-devtools-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-devtools-experimental": "^5.74.1",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@angular/core": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/optimistic-updates/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"@angular/forms": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/pagination/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@angular/core": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/query-options-from-a-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@angular/router": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/router/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@angular/router": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/rxjs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"@angular/forms": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion examples/angular/simple/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"@angular/core": "^19.2.4",
"@angular/platform-browser": "^19.2.4",
"@angular/platform-browser-dynamic": "^19.2.4",
"@tanstack/angular-query-experimental": "^5.74.0",
"@tanstack/angular-query-experimental": "^5.74.1",
"rxjs": "^7.8.2",
"tslib": "^2.8.1",
"zone.js": "0.15.0"
Expand Down
2 changes: 1 addition & 1 deletion packages/angular-query-devtools-experimental/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/angular-query-devtools-experimental",
"version": "5.74.0",
"version": "5.74.1",
"description": "Developer tools to interact with and visualize the TanStack/angular-query cache",
"author": "Arnoud de Vries",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion packages/angular-query-experimental/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tanstack/angular-query-experimental",
"version": "5.74.0",
"version": "5.74.1",
"description": "Signals for managing, caching and syncing asynchronous and remote data in Angular",
"author": "Arnoud de Vries",
"license": "MIT",
Expand Down
16 changes: 9 additions & 7 deletions packages/angular-query-experimental/src/inject-infinite-query.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import { InfiniteQueryObserver } from '@tanstack/query-core'
import {
Injector,
assertInInjectionContext,
inject,
runInInjectionContext,
} from '@angular/core'
import { createBaseQuery } from './create-base-query'
import { assertInjector } from './util/assert-injector/assert-injector'
import type {
DefaultError,
InfiniteData,
Expand All @@ -16,7 +21,6 @@ import type {
DefinedInitialDataInfiniteOptions,
UndefinedInitialDataInfiniteOptions,
} from './infinite-query-options'
import type { Injector } from '@angular/core'

export interface InjectInfiniteQueryOptions {
/**
Expand Down Expand Up @@ -115,14 +119,12 @@ export function injectInfiniteQuery(
injectInfiniteQueryFn: () => CreateInfiniteQueryOptions,
options?: InjectInfiniteQueryOptions,
) {
return assertInjector(injectInfiniteQuery, options?.injector, () =>
!options?.injector && assertInInjectionContext(injectInfiniteQuery)
const injector = options?.injector ?? inject(Injector)
return runInInjectionContext(injector, () =>
createBaseQuery(
injectInfiniteQueryFn,
InfiniteQueryObserver as typeof QueryObserver,
),
)
}

export interface InjectInfiniteQueryOptions {
injector?: Injector
}
62 changes: 34 additions & 28 deletions packages/angular-query-experimental/src/inject-is-fetching.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
import { DestroyRef, NgZone, inject, signal } from '@angular/core'
import {
DestroyRef,
Injector,
NgZone,
assertInInjectionContext,
inject,
signal,
} from '@angular/core'
import { QueryClient, notifyManager } from '@tanstack/query-core'
import { assertInjector } from './util/assert-injector/assert-injector'
import type { QueryFilters } from '@tanstack/query-core'
import type { Injector, Signal } from '@angular/core'
import type { Signal } from '@angular/core'

export interface InjectIsFetchingOptions {
/**
Expand All @@ -27,34 +33,34 @@ export function injectIsFetching(
filters?: QueryFilters,
options?: InjectIsFetchingOptions,
): Signal<number> {
return assertInjector(injectIsFetching, options?.injector, () => {
const destroyRef = inject(DestroyRef)
const ngZone = inject(NgZone)
const queryClient = inject(QueryClient)
!options?.injector && assertInInjectionContext(injectIsFetching)
const injector = options?.injector ?? inject(Injector)
const destroyRef = injector.get(DestroyRef)
const ngZone = injector.get(NgZone)
const queryClient = injector.get(QueryClient)

const cache = queryClient.getQueryCache()
// isFetching is the prev value initialized on mount *
let isFetching = queryClient.isFetching(filters)
const cache = queryClient.getQueryCache()
// isFetching is the prev value initialized on mount *
let isFetching = queryClient.isFetching(filters)

const result = signal(isFetching)
const result = signal(isFetching)

const unsubscribe = ngZone.runOutsideAngular(() =>
cache.subscribe(
notifyManager.batchCalls(() => {
const newIsFetching = queryClient.isFetching(filters)
if (isFetching !== newIsFetching) {
// * and update with each change
isFetching = newIsFetching
ngZone.run(() => {
result.set(isFetching)
})
}
}),
),
)
const unsubscribe = ngZone.runOutsideAngular(() =>
cache.subscribe(
notifyManager.batchCalls(() => {
const newIsFetching = queryClient.isFetching(filters)
if (isFetching !== newIsFetching) {
// * and update with each change
isFetching = newIsFetching
ngZone.run(() => {
result.set(isFetching)
})
}
}),
),
)

destroyRef.onDestroy(unsubscribe)
destroyRef.onDestroy(unsubscribe)

return result
})
return result
}
62 changes: 34 additions & 28 deletions packages/angular-query-experimental/src/inject-is-mutating.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
import { DestroyRef, NgZone, inject, signal } from '@angular/core'
import {
DestroyRef,
Injector,
NgZone,
assertInInjectionContext,
inject,
signal,
} from '@angular/core'
import { QueryClient, notifyManager } from '@tanstack/query-core'
import { assertInjector } from './util/assert-injector/assert-injector'
import type { MutationFilters } from '@tanstack/query-core'
import type { Injector, Signal } from '@angular/core'
import type { Signal } from '@angular/core'

export interface InjectIsMutatingOptions {
/**
Expand All @@ -26,34 +32,34 @@ export function injectIsMutating(
filters?: MutationFilters,
options?: InjectIsMutatingOptions,
): Signal<number> {
return assertInjector(injectIsMutating, options?.injector, () => {
const destroyRef = inject(DestroyRef)
const ngZone = inject(NgZone)
const queryClient = inject(QueryClient)
!options?.injector && assertInInjectionContext(injectIsMutating)
const injector = options?.injector ?? inject(Injector)
const destroyRef = injector.get(DestroyRef)
const ngZone = injector.get(NgZone)
const queryClient = injector.get(QueryClient)

const cache = queryClient.getMutationCache()
// isMutating is the prev value initialized on mount *
let isMutating = queryClient.isMutating(filters)
const cache = queryClient.getMutationCache()
// isMutating is the prev value initialized on mount *
let isMutating = queryClient.isMutating(filters)

const result = signal(isMutating)
const result = signal(isMutating)

const unsubscribe = ngZone.runOutsideAngular(() =>
cache.subscribe(
notifyManager.batchCalls(() => {
const newIsMutating = queryClient.isMutating(filters)
if (isMutating !== newIsMutating) {
// * and update with each change
isMutating = newIsMutating
ngZone.run(() => {
result.set(isMutating)
})
}
}),
),
)
const unsubscribe = ngZone.runOutsideAngular(() =>
cache.subscribe(
notifyManager.batchCalls(() => {
const newIsMutating = queryClient.isMutating(filters)
if (isMutating !== newIsMutating) {
// * and update with each change
isMutating = newIsMutating
ngZone.run(() => {
result.set(isMutating)
})
}
}),
),
)

destroyRef.onDestroy(unsubscribe)
destroyRef.onDestroy(unsubscribe)

return result
})
return result
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
} from '@angular/core'
import type { Provider, Signal } from '@angular/core'

const IsRestoring = new InjectionToken<Signal<boolean>>('IsRestoring')
const IS_RESTORING = new InjectionToken<Signal<boolean>>('')

/**
* The `Injector` in which to create the isRestoring signal.
Expand All @@ -30,7 +30,7 @@ export function injectIsRestoring(
!options?.injector && assertInInjectionContext(injectIsRestoring)
const injector = options?.injector ?? inject(Injector)
return injector.get(
IsRestoring,
IS_RESTORING,
computed(() => false),
{ optional: true },
)
Expand All @@ -44,7 +44,7 @@ export function injectIsRestoring(
*/
export function provideIsRestoring(isRestoring: Signal<boolean>): Provider {
return {
provide: IsRestoring,
provide: IS_RESTORING,
useValue: isRestoring,
}
}
Loading
Loading