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 injectIsFetching(filters, options) { !(options == null ? void 0 : options.injector) && assertInInjectionContext(injectIsFetching); 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.getQueryCache(); let isFetching = queryClient.isFetching(filters); const result = signal(isFetching); const unsubscribe = ngZone.runOutsideAngular( () => cache.subscribe( notifyManager.batchCalls(() => { const newIsFetching = queryClient.isFetching(filters); if (isFetching !== newIsFetching) { isFetching = newIsFetching; ngZone.run(() => { result.set(isFetching); }); } }) ) ); destroyRef.onDestroy(unsubscribe); return result; } export { injectIsFetching }; //# sourceMappingURL=inject-is-fetching.mjs.map