UNPKG

@tanstack/angular-query-experimental

Version:

Signals for managing, caching and syncing asynchronous and remote data in Angular

32 lines (31 loc) 1.17 kB
import { assertInInjectionContext, inject, Injector, DestroyRef, NgZone, signal } from "@angular/core"; import { QueryClient, notifyManager } from "@tanstack/query-core"; function injectIsMutating(filters, options) { !(options == null ? void 0 : options.injector) && assertInInjectionContext(injectIsMutating); const injector = (options == null ? void 0 : options.injector) ?? inject(Injector); const destroyRef = injector.get(DestroyRef); const ngZone = injector.get(NgZone); const queryClient = injector.get(QueryClient); const cache = queryClient.getMutationCache(); let isMutating = queryClient.isMutating(filters); const result = signal(isMutating); const unsubscribe = ngZone.runOutsideAngular( () => cache.subscribe( notifyManager.batchCalls(() => { const newIsMutating = queryClient.isMutating(filters); if (isMutating !== newIsMutating) { isMutating = newIsMutating; ngZone.run(() => { result.set(isMutating); }); } }) ) ); destroyRef.onDestroy(unsubscribe); return result; } export { injectIsMutating }; //# sourceMappingURL=inject-is-mutating.mjs.map