@tanstack/angular-query-experimental 5.103.3 → 5.104.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/create-base-query.d.mts +1 -2
- package/dist/create-base-query.d.mts.map +1 -1
- package/dist/create-base-query.mjs.map +1 -1
- package/dist/devtools/stub.d.mts +1 -2
- package/dist/devtools/stub.d.mts.map +1 -1
- package/dist/devtools/types.d.mts +4 -5
- package/dist/devtools/types.d.mts.map +1 -1
- package/dist/devtools/with-devtools.d.mts +1 -2
- package/dist/devtools/with-devtools.d.mts.map +1 -1
- package/dist/devtools-panel/inject-devtools-panel.d.mts +1 -2
- package/dist/devtools-panel/inject-devtools-panel.d.mts.map +1 -1
- package/dist/devtools-panel/stub.d.mts +1 -2
- package/dist/devtools-panel/stub.d.mts.map +1 -1
- package/dist/devtools-panel/types.d.mts +4 -5
- package/dist/devtools-panel/types.d.mts.map +1 -1
- package/dist/infinite-query-options.d.mts +6 -7
- package/dist/infinite-query-options.d.mts.map +1 -1
- package/dist/inject-infinite-query.d.mts +4 -5
- package/dist/inject-infinite-query.d.mts.map +1 -1
- package/dist/inject-is-fetching.d.mts +2 -3
- package/dist/inject-is-fetching.d.mts.map +1 -1
- package/dist/inject-is-mutating.d.mts +2 -3
- package/dist/inject-is-mutating.d.mts.map +1 -1
- package/dist/inject-is-restoring.d.mts +2 -3
- package/dist/inject-is-restoring.d.mts.map +1 -1
- package/dist/inject-mutation-state.d.mts +2 -3
- package/dist/inject-mutation-state.d.mts.map +1 -1
- package/dist/inject-mutation.d.mts +2 -3
- package/dist/inject-mutation.d.mts.map +1 -1
- package/dist/inject-queries.d.mts +4 -5
- package/dist/inject-queries.d.mts.map +1 -1
- package/dist/inject-queries.mjs.map +1 -1
- package/dist/inject-query-client.d.mts +1 -2
- package/dist/inject-query-client.d.mts.map +1 -1
- package/dist/inject-query.d.mts +4 -5
- package/dist/inject-query.d.mts.map +1 -1
- package/dist/mutation-options.d.mts +2 -3
- package/dist/mutation-options.d.mts.map +1 -1
- package/dist/pending-tasks-compat.d.mts +2 -3
- package/dist/pending-tasks-compat.d.mts.map +1 -1
- package/dist/providers.d.mts +8 -9
- package/dist/providers.d.mts.map +1 -1
- package/dist/query-options.d.mts +6 -7
- package/dist/query-options.d.mts.map +1 -1
- package/dist/signal-proxy.d.mts +2 -3
- package/dist/signal-proxy.d.mts.map +1 -1
- package/dist/types.d.mts +15 -16
- package/dist/types.d.mts.map +1 -1
- package/package.json +5 -3
- package/src/create-base-query.ts +1 -0
- package/src/inject-queries.ts +1 -0
|
@@ -7,7 +7,7 @@ import { QueryKey, QueryObserver, QueryObserverResult } from "@tanstack/query-co
|
|
|
7
7
|
* @param optionsFn
|
|
8
8
|
* @param Observer
|
|
9
9
|
*/
|
|
10
|
-
declare function createBaseQuery<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>(optionsFn: () => CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, Observer: typeof QueryObserver): MapToSignals<{
|
|
10
|
+
export declare function createBaseQuery<TQueryFnData, TError, TData, TQueryData, TQueryKey extends QueryKey>(optionsFn: () => CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, Observer: typeof QueryObserver): MapToSignals<{
|
|
11
11
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<QueryObserverResult<TData, TError>>;
|
|
12
12
|
data: TData;
|
|
13
13
|
error: TError;
|
|
@@ -165,5 +165,4 @@ declare function createBaseQuery<TQueryFnData, TError, TData, TQueryData, TQuery
|
|
|
165
165
|
fetchStatus: import("@tanstack/query-core").FetchStatus;
|
|
166
166
|
}>;
|
|
167
167
|
//#endregion
|
|
168
|
-
export { createBaseQuery };
|
|
169
168
|
//# sourceMappingURL=create-base-query.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-base-query.d.mts","names":["_$__signal_proxy0.MapToSignals"],"sources":["../src/create-base-query.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create-base-query.d.mts","names":["_$__signal_proxy0.MapToSignals"],"sources":["../src/create-base-query.ts"],"mappings":";;;;;;;;;wBA8BgB,gBACd,cACA,QACA,OACA,YACA,kBAAkB,UAElB,iBAAiB,uBACf,cACA,QACA,OACA,YACA,YAEF,iBAAiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-base-query.mjs","names":[],"sources":["../src/create-base-query.ts"],"sourcesContent":["import {\n NgZone,\n VERSION,\n computed,\n effect,\n inject,\n signal,\n untracked,\n} from '@angular/core'\nimport {\n QueryClient,\n notifyManager,\n shouldThrowError,\n} from '@tanstack/query-core'\nimport { signalProxy } from './signal-proxy'\nimport { injectIsRestoring } from './inject-is-restoring'\nimport { PENDING_TASKS } from './pending-tasks-compat'\nimport type { PendingTaskRef } from './pending-tasks-compat'\nimport type {\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { CreateBaseQueryOptions } from './types'\n\n/**\n * Base implementation for `injectQuery` and `injectInfiniteQuery`.\n * @param optionsFn\n * @param Observer\n */\nexport function createBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n optionsFn: () => CreateBaseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n Observer: typeof QueryObserver,\n) {\n const ngZone = inject(NgZone)\n const pendingTasks = inject(PENDING_TASKS)\n const queryClient = inject(QueryClient)\n const isRestoring = injectIsRestoring()\n\n /**\n * Signal that has the default options from query client applied\n * computed() is used so signals can be inserted into the options\n * making it reactive. Wrapping options in a function ensures embedded expressions\n * are preserved and can keep being applied after signal changes\n */\n const defaultedOptionsSignal = computed(() => {\n const defaultedOptions = queryClient.defaultQueryOptions(optionsFn())\n defaultedOptions._optimisticResults = isRestoring()\n ? 'isRestoring'\n : 'optimistic'\n return defaultedOptions\n })\n\n const observerSignal = (() => {\n let instance: QueryObserver<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > | null = null\n\n return computed(() => {\n return (instance ||= new Observer(queryClient, defaultedOptionsSignal()))\n })\n })()\n\n const optimisticResultSignal = computed(() =>\n observerSignal().getOptimisticResult(defaultedOptionsSignal()),\n )\n\n const resultFromSubscriberSignal = signal<QueryObserverResult<\n TData,\n TError\n > | null>(null)\n\n effect(\n (onCleanup) => {\n const observer = observerSignal()\n const defaultedOptions = defaultedOptionsSignal()\n\n untracked(() => {\n observer.setOptions(defaultedOptions)\n })\n onCleanup(() => {\n ngZone.run(() => resultFromSubscriberSignal.set(null))\n })\n },\n {\n // Set allowSignalWrites to support Angular < v19\n // Set to undefined to avoid warning on newer versions\n allowSignalWrites: VERSION.major < '19' || undefined,\n },\n )\n\n effect((onCleanup) => {\n // observer.trackResult is not used as this optimization is not needed for Angular\n const observer = observerSignal()\n let pendingTaskRef: PendingTaskRef | null = null\n\n const unsubscribe = isRestoring()\n ? () => undefined\n : untracked(() =>\n ngZone.runOutsideAngular(() => {\n return observer.subscribe(\n notifyManager.batchCalls((state) => {\n ngZone.run(() => {\n if (state.fetchStatus === 'fetching' && !pendingTaskRef) {\n pendingTaskRef = pendingTasks.add()\n }\n\n if (state.fetchStatus === 'idle' && pendingTaskRef) {\n pendingTaskRef()\n pendingTaskRef = null\n }\n\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(observer.options.throwOnError, [\n state.error,\n observer.getCurrentQuery(),\n ])\n ) {\n ngZone.onError.emit(state.error)\n throw state.error\n }\n resultFromSubscriberSignal.set(state)\n })\n }),\n )\n }),\n )\n\n onCleanup(() => {\n if (pendingTaskRef) {\n pendingTaskRef()\n pendingTaskRef = null\n }\n unsubscribe()\n })\n })\n\n return signalProxy(\n computed(() => {\n const subscriberResult = resultFromSubscriberSignal()\n const optimisticResult = optimisticResultSignal()\n const result = subscriberResult ?? optimisticResult\n\n // Wrap methods to ensure observer has latest options before execution\n const observer = observerSignal()\n\n const originalRefetch = result.refetch\n return {\n ...result,\n refetch: ((...args: Parameters<typeof originalRefetch>) => {\n observer.setOptions(defaultedOptionsSignal())\n return originalRefetch(...args)\n }) as typeof originalRefetch,\n }\n }),\n )\n}\n"],"mappings":";;;;;;;;;;;AA8BA,SAAgB,gBAOd,WAOA,UACA;CACA,MAAM,SAAS,OAAO,MAAM;CAC5B,MAAM,eAAe,OAAO,aAAa;CACzC,MAAM,cAAc,OAAO,WAAW;CACtC,MAAM,cAAc,kBAAkB;;;;;;;CAQtC,MAAM,yBAAyB,eAAe;EAC5C,MAAM,mBAAmB,YAAY,oBAAoB,UAAU,CAAC;EACpE,iBAAiB,qBAAqB,YAAY,IAC9C,gBACA;EACJ,OAAO;CACT,CAAC;CAED,MAAM,wBAAwB;EAC5B,IAAI,WAMO;EAEX,OAAO,eAAe;GACpB,OAAQ,aAAa,IAAI,SAAS,aAAa,uBAAuB,CAAC;EACzE,CAAC;CACH,EAAA,CAAG;CAEH,MAAM,yBAAyB,eAC7B,eAAe,CAAC,CAAC,oBAAoB,uBAAuB,CAAC,CAC/D;CAEA,MAAM,6BAA6B,OAGzB,IAAI;CAEd,QACG,cAAc;EACb,MAAM,WAAW,eAAe;EAChC,MAAM,mBAAmB,uBAAuB;EAEhD,gBAAgB;GACd,SAAS,WAAW,gBAAgB;EACtC,CAAC;EACD,gBAAgB;GACd,OAAO,UAAU,2BAA2B,IAAI,IAAI,CAAC;EACvD,CAAC;CACH,GACA,EAGE,mBAAmB,QAAQ,QAAQ,QAAQ,KAAA,EAC7C,CACF;CAEA,QAAQ,cAAc;EAEpB,MAAM,WAAW,eAAe;EAChC,IAAI,iBAAwC;EAE5C,MAAM,cAAc,YAAY,UACtB,KAAA,IACN,gBACE,OAAO,wBAAwB;GAC7B,OAAO,SAAS,UACd,cAAc,YAAY,UAAU;IAClC,OAAO,UAAU;KACf,IAAI,MAAM,gBAAgB,cAAc,CAAC,gBACvC,iBAAiB,aAAa,IAAI;KAGpC,IAAI,MAAM,gBAAgB,UAAU,gBAAgB;MAClD,eAAe;MACf,iBAAiB;KACnB;KAEA,IACE,MAAM,WACN,CAAC,MAAM,cACP,iBAAiB,SAAS,QAAQ,cAAc,CAC9C,MAAM,OACN,SAAS,gBAAgB,CAC3B,CAAC,GACD;MACA,OAAO,QAAQ,KAAK,MAAM,KAAK;MAC/B,MAAM,MAAM;KACd;KACA,2BAA2B,IAAI,KAAK;IACtC,CAAC;GACH,CAAC,CACH;EACF,CAAC,CACH;EAEJ,gBAAgB;GACd,IAAI,gBAAgB;IAClB,eAAe;IACf,iBAAiB;GACnB;GACA,YAAY;EACd,CAAC;CACH,CAAC;CAED,OAAO,YACL,eAAe;EACb,MAAM,mBAAmB,2BAA2B;EACpD,MAAM,mBAAmB,uBAAuB;EAChD,MAAM,SAAS,oBAAoB;EAGnC,MAAM,WAAW,eAAe;EAEhC,MAAM,kBAAkB,OAAO;EAC/B,OAAO;GACL,GAAG;
|
|
1
|
+
{"version":3,"file":"create-base-query.mjs","names":[],"sources":["../src/create-base-query.ts"],"sourcesContent":["import {\n NgZone,\n VERSION,\n computed,\n effect,\n inject,\n signal,\n untracked,\n} from '@angular/core'\nimport {\n QueryClient,\n notifyManager,\n shouldThrowError,\n} from '@tanstack/query-core'\nimport { signalProxy } from './signal-proxy'\nimport { injectIsRestoring } from './inject-is-restoring'\nimport { PENDING_TASKS } from './pending-tasks-compat'\nimport type { PendingTaskRef } from './pending-tasks-compat'\nimport type {\n QueryKey,\n QueryObserver,\n QueryObserverResult,\n} from '@tanstack/query-core'\nimport type { CreateBaseQueryOptions } from './types'\n\n/**\n * Base implementation for `injectQuery` and `injectInfiniteQuery`.\n * @param optionsFn\n * @param Observer\n */\nexport function createBaseQuery<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey extends QueryKey,\n>(\n optionsFn: () => CreateBaseQueryOptions<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n >,\n Observer: typeof QueryObserver,\n) {\n const ngZone = inject(NgZone)\n const pendingTasks = inject(PENDING_TASKS)\n const queryClient = inject(QueryClient)\n const isRestoring = injectIsRestoring()\n\n /**\n * Signal that has the default options from query client applied\n * computed() is used so signals can be inserted into the options\n * making it reactive. Wrapping options in a function ensures embedded expressions\n * are preserved and can keep being applied after signal changes\n */\n const defaultedOptionsSignal = computed(() => {\n const defaultedOptions = queryClient.defaultQueryOptions(optionsFn())\n defaultedOptions._optimisticResults = isRestoring()\n ? 'isRestoring'\n : 'optimistic'\n return defaultedOptions\n })\n\n const observerSignal = (() => {\n let instance: QueryObserver<\n TQueryFnData,\n TError,\n TData,\n TQueryData,\n TQueryKey\n > | null = null\n\n return computed(() => {\n return (instance ||= new Observer(queryClient, defaultedOptionsSignal()))\n })\n })()\n\n const optimisticResultSignal = computed(() =>\n observerSignal().getOptimisticResult(defaultedOptionsSignal()),\n )\n\n const resultFromSubscriberSignal = signal<QueryObserverResult<\n TData,\n TError\n > | null>(null)\n\n effect(\n (onCleanup) => {\n const observer = observerSignal()\n const defaultedOptions = defaultedOptionsSignal()\n\n untracked(() => {\n observer.setOptions(defaultedOptions)\n })\n onCleanup(() => {\n ngZone.run(() => resultFromSubscriberSignal.set(null))\n })\n },\n {\n // Set allowSignalWrites to support Angular < v19\n // Set to undefined to avoid warning on newer versions\n allowSignalWrites: VERSION.major < '19' || undefined,\n },\n )\n\n effect((onCleanup) => {\n // observer.trackResult is not used as this optimization is not needed for Angular\n const observer = observerSignal()\n let pendingTaskRef: PendingTaskRef | null = null\n\n const unsubscribe = isRestoring()\n ? () => undefined\n : untracked(() =>\n ngZone.runOutsideAngular(() => {\n return observer.subscribe(\n notifyManager.batchCalls((state) => {\n ngZone.run(() => {\n if (state.fetchStatus === 'fetching' && !pendingTaskRef) {\n pendingTaskRef = pendingTasks.add()\n }\n\n if (state.fetchStatus === 'idle' && pendingTaskRef) {\n pendingTaskRef()\n pendingTaskRef = null\n }\n\n if (\n state.isError &&\n !state.isFetching &&\n shouldThrowError(observer.options.throwOnError, [\n state.error,\n observer.getCurrentQuery(),\n ])\n ) {\n ngZone.onError.emit(state.error)\n throw state.error\n }\n resultFromSubscriberSignal.set(state)\n })\n }),\n )\n }),\n )\n\n onCleanup(() => {\n if (pendingTaskRef) {\n pendingTaskRef()\n pendingTaskRef = null\n }\n unsubscribe()\n })\n })\n\n return signalProxy(\n computed(() => {\n const subscriberResult = resultFromSubscriberSignal()\n const optimisticResult = optimisticResultSignal()\n const result = subscriberResult ?? optimisticResult\n\n // Wrap methods to ensure observer has latest options before execution\n const observer = observerSignal()\n\n const originalRefetch = result.refetch\n return {\n ...result,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n refetch: ((...args: Parameters<typeof originalRefetch>) => {\n observer.setOptions(defaultedOptionsSignal())\n return originalRefetch(...args)\n }) as typeof originalRefetch,\n }\n }),\n )\n}\n"],"mappings":";;;;;;;;;;;AA8BA,SAAgB,gBAOd,WAOA,UACA;CACA,MAAM,SAAS,OAAO,MAAM;CAC5B,MAAM,eAAe,OAAO,aAAa;CACzC,MAAM,cAAc,OAAO,WAAW;CACtC,MAAM,cAAc,kBAAkB;;;;;;;CAQtC,MAAM,yBAAyB,eAAe;EAC5C,MAAM,mBAAmB,YAAY,oBAAoB,UAAU,CAAC;EACpE,iBAAiB,qBAAqB,YAAY,IAC9C,gBACA;EACJ,OAAO;CACT,CAAC;CAED,MAAM,wBAAwB;EAC5B,IAAI,WAMO;EAEX,OAAO,eAAe;GACpB,OAAQ,aAAa,IAAI,SAAS,aAAa,uBAAuB,CAAC;EACzE,CAAC;CACH,EAAA,CAAG;CAEH,MAAM,yBAAyB,eAC7B,eAAe,CAAC,CAAC,oBAAoB,uBAAuB,CAAC,CAC/D;CAEA,MAAM,6BAA6B,OAGzB,IAAI;CAEd,QACG,cAAc;EACb,MAAM,WAAW,eAAe;EAChC,MAAM,mBAAmB,uBAAuB;EAEhD,gBAAgB;GACd,SAAS,WAAW,gBAAgB;EACtC,CAAC;EACD,gBAAgB;GACd,OAAO,UAAU,2BAA2B,IAAI,IAAI,CAAC;EACvD,CAAC;CACH,GACA,EAGE,mBAAmB,QAAQ,QAAQ,QAAQ,KAAA,EAC7C,CACF;CAEA,QAAQ,cAAc;EAEpB,MAAM,WAAW,eAAe;EAChC,IAAI,iBAAwC;EAE5C,MAAM,cAAc,YAAY,UACtB,KAAA,IACN,gBACE,OAAO,wBAAwB;GAC7B,OAAO,SAAS,UACd,cAAc,YAAY,UAAU;IAClC,OAAO,UAAU;KACf,IAAI,MAAM,gBAAgB,cAAc,CAAC,gBACvC,iBAAiB,aAAa,IAAI;KAGpC,IAAI,MAAM,gBAAgB,UAAU,gBAAgB;MAClD,eAAe;MACf,iBAAiB;KACnB;KAEA,IACE,MAAM,WACN,CAAC,MAAM,cACP,iBAAiB,SAAS,QAAQ,cAAc,CAC9C,MAAM,OACN,SAAS,gBAAgB,CAC3B,CAAC,GACD;MACA,OAAO,QAAQ,KAAK,MAAM,KAAK;MAC/B,MAAM,MAAM;KACd;KACA,2BAA2B,IAAI,KAAK;IACtC,CAAC;GACH,CAAC,CACH;EACF,CAAC,CACH;EAEJ,gBAAgB;GACd,IAAI,gBAAgB;IAClB,eAAe;IACf,iBAAiB;GACnB;GACA,YAAY;EACd,CAAC;CACH,CAAC;CAED,OAAO,YACL,eAAe;EACb,MAAM,mBAAmB,2BAA2B;EACpD,MAAM,mBAAmB,uBAAuB;EAChD,MAAM,SAAS,oBAAoB;EAGnC,MAAM,WAAW,eAAe;EAEhC,MAAM,kBAAkB,OAAO;EAC/B,OAAO;GACL,GAAG;GAEH,WAAW,GAAG,SAA6C;IACzD,SAAS,WAAW,uBAAuB,CAAC;IAC5C,OAAO,gBAAgB,GAAG,IAAI;GAChC;EACF;CACF,CAAC,CACH;AACF"}
|
package/dist/devtools/stub.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.d.mts","names":[],"sources":["../../src/devtools/stub.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"stub.d.mts","names":[],"sources":["../../src/devtools/stub.ts"],"mappings":";;qBAGa,cAAc"}
|
|
@@ -5,7 +5,7 @@ import { DevtoolsButtonPosition, DevtoolsErrorType, DevtoolsPosition, Theme } fr
|
|
|
5
5
|
/**
|
|
6
6
|
* Options for configuring withDevtools.
|
|
7
7
|
*/
|
|
8
|
-
interface WithDevtoolsOptions {
|
|
8
|
+
export interface WithDevtoolsOptions {
|
|
9
9
|
/**
|
|
10
10
|
* An array of dependencies to be injected and passed to the `withDevtoolsFn` function.
|
|
11
11
|
*
|
|
@@ -33,7 +33,7 @@ interface WithDevtoolsOptions {
|
|
|
33
33
|
/**
|
|
34
34
|
* Options for configuring the TanStack Query devtools.
|
|
35
35
|
*/
|
|
36
|
-
interface DevtoolsOptions {
|
|
36
|
+
export interface DevtoolsOptions {
|
|
37
37
|
/**
|
|
38
38
|
* Set this true if you want the devtools to default to being open
|
|
39
39
|
*/
|
|
@@ -100,8 +100,7 @@ interface DevtoolsOptions {
|
|
|
100
100
|
*/
|
|
101
101
|
loadDevtools?: 'auto' | boolean;
|
|
102
102
|
}
|
|
103
|
-
type WithDevtoolsFn = (...deps: Array<any>) => DevtoolsOptions;
|
|
104
|
-
type WithDevtools = (withDevtoolsFn?: WithDevtoolsFn, options?: WithDevtoolsOptions) => DevtoolsFeature;
|
|
103
|
+
export type WithDevtoolsFn = (...deps: Array<any>) => DevtoolsOptions;
|
|
104
|
+
export type WithDevtools = (withDevtoolsFn?: WithDevtoolsFn, options?: WithDevtoolsOptions) => DevtoolsFeature;
|
|
105
105
|
//#endregion
|
|
106
|
-
export { DevtoolsOptions, WithDevtools, WithDevtoolsFn, WithDevtoolsOptions };
|
|
107
106
|
//# sourceMappingURL=types.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/devtools/types.ts"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/devtools/types.ts"],"mappings":";;;;;;;iBAYiB;;;;;;;;;;;;;;;;;;;;;;;EAuBf,OAAO;;;;;iBAMQ;;;;EAIf;;;;;;;EAOA,iBAAiB;;;;;;;EAOjB,WAAW;;;;EAIX,SAAS;;;;EAIT,aAAa,MAAM;;;;EAInB;;;;EAIA,kBAAkB;;;;EAIlB;;;;;;EAMA,QAAQ;;;;;;;;;;;;;;;;;;;;;EAsBR;;YAGU,qBAAqB,MAAM,eAAe;YAE1C,gBACV,iBAAiB,gBACjB,UAAU,wBACP"}
|
|
@@ -23,7 +23,6 @@ import { WithDevtools } from "./types.mjs";
|
|
|
23
23
|
* @see {@link provideTanStackQuery}
|
|
24
24
|
* @see {@link DevtoolsOptions}
|
|
25
25
|
*/
|
|
26
|
-
declare const withDevtools: WithDevtools;
|
|
26
|
+
export declare const withDevtools: WithDevtools;
|
|
27
27
|
//#endregion
|
|
28
|
-
export { withDevtools };
|
|
29
28
|
//# sourceMappingURL=with-devtools.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-devtools.d.mts","names":[],"sources":["../../src/devtools/with-devtools.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"with-devtools.d.mts","names":[],"sources":["../../src/devtools/with-devtools.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;qBA4Da,cAAc"}
|
|
@@ -12,7 +12,6 @@ import { InjectDevtoolsPanel } from "./types.mjs";
|
|
|
12
12
|
* @returns DevtoolsPanelRef
|
|
13
13
|
* @see https://tanstack.com/query/v5/docs/framework/angular/devtools
|
|
14
14
|
*/
|
|
15
|
-
declare const injectDevtoolsPanel: InjectDevtoolsPanel;
|
|
15
|
+
export declare const injectDevtoolsPanel: InjectDevtoolsPanel;
|
|
16
16
|
//#endregion
|
|
17
|
-
export { injectDevtoolsPanel };
|
|
18
17
|
//# sourceMappingURL=inject-devtools-panel.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-devtools-panel.d.mts","names":[],"sources":["../../src/devtools-panel/inject-devtools-panel.ts"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inject-devtools-panel.d.mts","names":[],"sources":["../../src/devtools-panel/inject-devtools-panel.ts"],"mappings":";;;;;;;;;;;;;;qBAgCa,qBAAqB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { InjectDevtoolsPanel } from "./types.mjs";
|
|
2
2
|
//#region src/devtools-panel/stub.d.ts
|
|
3
|
-
declare const injectDevtoolsPanel: InjectDevtoolsPanel;
|
|
3
|
+
export declare const injectDevtoolsPanel: InjectDevtoolsPanel;
|
|
4
4
|
//#endregion
|
|
5
|
-
export { injectDevtoolsPanel };
|
|
6
5
|
//# sourceMappingURL=stub.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stub.d.mts","names":[],"sources":["../../src/devtools-panel/stub.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"stub.d.mts","names":[],"sources":["../../src/devtools-panel/stub.ts"],"mappings":";;qBAIa,qBAAqB"}
|
|
@@ -2,7 +2,7 @@ import { ElementRef, Injector } from "@angular/core";
|
|
|
2
2
|
import { QueryClient } from "@tanstack/query-core";
|
|
3
3
|
import { DevtoolsErrorType } from "@tanstack/query-devtools";
|
|
4
4
|
//#region src/devtools-panel/types.d.ts
|
|
5
|
-
interface InjectDevtoolsPanelOptions {
|
|
5
|
+
export interface InjectDevtoolsPanelOptions {
|
|
6
6
|
/**
|
|
7
7
|
* The `Injector` in which to create the devtools panel.
|
|
8
8
|
*
|
|
@@ -13,13 +13,13 @@ interface InjectDevtoolsPanelOptions {
|
|
|
13
13
|
/**
|
|
14
14
|
* A devtools panel, which can be manually destroyed.
|
|
15
15
|
*/
|
|
16
|
-
interface DevtoolsPanelRef {
|
|
16
|
+
export interface DevtoolsPanelRef {
|
|
17
17
|
/**
|
|
18
18
|
* Destroy the panel, removing it from the DOM and stops listening to signal changes.
|
|
19
19
|
*/
|
|
20
20
|
destroy: () => void;
|
|
21
21
|
}
|
|
22
|
-
interface DevtoolsPanelOptions {
|
|
22
|
+
export interface DevtoolsPanelOptions {
|
|
23
23
|
/**
|
|
24
24
|
* Custom instance of QueryClient
|
|
25
25
|
*/
|
|
@@ -46,7 +46,6 @@ interface DevtoolsPanelOptions {
|
|
|
46
46
|
*/
|
|
47
47
|
hostElement?: ElementRef;
|
|
48
48
|
}
|
|
49
|
-
type InjectDevtoolsPanel = (injectDevtoolsPanelFn: () => DevtoolsPanelOptions, options?: InjectDevtoolsPanelOptions) => DevtoolsPanelRef;
|
|
49
|
+
export type InjectDevtoolsPanel = (injectDevtoolsPanelFn: () => DevtoolsPanelOptions, options?: InjectDevtoolsPanelOptions) => DevtoolsPanelRef;
|
|
50
50
|
//#endregion
|
|
51
|
-
export { DevtoolsPanelOptions, DevtoolsPanelRef, InjectDevtoolsPanel, InjectDevtoolsPanelOptions };
|
|
52
51
|
//# sourceMappingURL=types.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/devtools-panel/types.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/devtools-panel/types.ts"],"mappings":";;;;iBAIiB;;;;;;EAMf,WAAW;;;;;iBAMI;;;;EAIf;;iBAGe;;;;EAIf,SAAS;;;;EAIT,aAAa,MAAM;;;;EAInB;;;;EAIA,kBAAkB;;;;EAKlB;;;;;EAMA,cAAc;;YAGJ,uBACV,6BAA6B,sBAC7B,UAAU,+BACP"}
|
|
@@ -12,7 +12,7 @@ import { DefaultError, InfiniteData, InitialDataFunction, NonUndefinedGuard, Omi
|
|
|
12
12
|
* @template TQueryKey - The type of your `queryKey`.
|
|
13
13
|
* @template TPageParam - The type of the parameter passed to `queryFn` to fetch a given page.
|
|
14
14
|
*/
|
|
15
|
-
type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
|
|
15
|
+
export type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
|
|
16
16
|
/**
|
|
17
17
|
* If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
|
18
18
|
* created or cached yet). If set to a function, the function will be called **once** during the shared/root
|
|
@@ -34,7 +34,7 @@ type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TD
|
|
|
34
34
|
* @template TQueryKey - The type of your `queryKey`.
|
|
35
35
|
* @template TPageParam - The type of the parameter passed to `queryFn` to fetch a given page.
|
|
36
36
|
*/
|
|
37
|
-
type UnusedSkipTokenInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = OmitKeyof<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, 'queryFn'> & {
|
|
37
|
+
export type UnusedSkipTokenInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = OmitKeyof<CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, 'queryFn'> & {
|
|
38
38
|
/**
|
|
39
39
|
* `skipToken` is not allowed as a value here — this overload is selected when no `initialData` is set. If
|
|
40
40
|
* you don't intend to run the query yet, set `enabled: false` — omitting `queryFn` alone still triggers a
|
|
@@ -54,7 +54,7 @@ type UnusedSkipTokenInfiniteOptions<TQueryFnData, TError = DefaultError, TData =
|
|
|
54
54
|
* @template TQueryKey - The type of your `queryKey`.
|
|
55
55
|
* @template TPageParam - The type of the parameter passed to `queryFn` to fetch a given page.
|
|
56
56
|
*/
|
|
57
|
-
type DefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
|
|
57
|
+
export type DefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & {
|
|
58
58
|
/**
|
|
59
59
|
* If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
|
60
60
|
* created or cached yet). If set to a function, the function will be called **once** during the shared/root
|
|
@@ -110,7 +110,7 @@ type DefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TDat
|
|
|
110
110
|
* }
|
|
111
111
|
* ```
|
|
112
112
|
*/
|
|
113
|
-
declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
|
|
113
|
+
export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
|
|
114
114
|
/**
|
|
115
115
|
* You can generally pass everything to `infiniteQueryOptions` that you can also pass to
|
|
116
116
|
* `injectInfiniteQuery`. These options can be shared across functions and imperative APIs such as
|
|
@@ -162,7 +162,7 @@ declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData
|
|
|
162
162
|
* @param options - The {@link UnusedSkipTokenInfiniteOptions} to use — everything you can pass to
|
|
163
163
|
* `injectInfiniteQuery`.
|
|
164
164
|
*/
|
|
165
|
-
declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UnusedSkipTokenInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UnusedSkipTokenInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
|
|
165
|
+
export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UnusedSkipTokenInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UnusedSkipTokenInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
|
|
166
166
|
/**
|
|
167
167
|
* You can generally pass everything to `infiniteQueryOptions` that you can also pass to
|
|
168
168
|
* `injectInfiniteQuery`. These options can be shared across functions and imperative APIs such as
|
|
@@ -214,7 +214,6 @@ declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData
|
|
|
214
214
|
* @param options - The {@link UndefinedInitialDataInfiniteOptions} to use — everything you can pass to
|
|
215
215
|
* `injectInfiniteQuery`.
|
|
216
216
|
*/
|
|
217
|
-
declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
|
|
217
|
+
export declare function infiniteQueryOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(options: UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>): UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam> & QueryKeyWithDataTag<TQueryKey, InfiniteData<TQueryFnData>, TError>;
|
|
218
218
|
//#endregion
|
|
219
|
-
export { DefinedInitialDataInfiniteOptions, UndefinedInitialDataInfiniteOptions, UnusedSkipTokenInfiniteOptions, infiniteQueryOptions };
|
|
220
219
|
//# sourceMappingURL=infinite-query-options.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infinite-query-options.d.mts","names":[],"sources":["../src/infinite-query-options.ts"],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"infinite-query-options.d.mts","names":[],"sources":["../src/infinite-query-options.ts"],"mappings":";;;;;;;;;;;;;;YAuBY,oCACV,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,wBACE,2BACF,cACA,QACA,OACA,WACA;;;;;;;;EASA,0BAEI,kBAAkB,aAAa,cAAc,eAC7C,oBACE,kBAAkB,aAAa,cAAc;;;;;;;;;;;;;;YAgBzC,+BACV,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,wBACE,UACF,2BACE,cACA,QACA,OACA,WACA;;;;;;;EAUF,UAAU,QACR,2BACE,cACA,QACA,OACA,WACA,wBAEF;;;;;;;;;;;;;YAeQ,kCACV,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,wBACE,2BACF,cACA,QACA,OACA,WACA;;;;;;;;EASA,aACI,kBAAkB,aAAa,cAAc,sBACtC,kBAAkB,aAAa,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAkD1C,qBACd,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,sBAEA,SAAS,kCACP,cACA,QACA,OACA,WACA,cAED,kCACD,cACA,QACA,OACA,WACA,cAEA,oBAAoB,WAAW,aAAa,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAqD7C,qBACd,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,sBAEA,SAAS,+BACP,cACA,QACA,OACA,WACA,cAED,+BACD,cACA,QACA,OACA,WACA,cAEA,oBAAoB,WAAW,aAAa,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAqD7C,qBACd,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,sBAEA,SAAS,oCACP,cACA,QACA,OACA,WACA,cAED,oCACD,cACA,QACA,OACA,WACA,cAEA,oBAAoB,WAAW,aAAa,eAAe"}
|
|
@@ -3,7 +3,7 @@ import { DefinedInitialDataInfiniteOptions, UndefinedInitialDataInfiniteOptions
|
|
|
3
3
|
import { Injector } from "@angular/core";
|
|
4
4
|
import { DefaultError, InfiniteData, QueryKey } from "@tanstack/query-core";
|
|
5
5
|
//#region src/inject-infinite-query.d.ts
|
|
6
|
-
interface InjectInfiniteQueryOptions {
|
|
6
|
+
export interface InjectInfiniteQueryOptions {
|
|
7
7
|
/**
|
|
8
8
|
* The `Injector` in which to create the infinite query.
|
|
9
9
|
*
|
|
@@ -60,7 +60,7 @@ interface InjectInfiniteQueryOptions {
|
|
|
60
60
|
* }
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
|
-
declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(injectInfiniteQueryFn: () => DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, options?: InjectInfiniteQueryOptions): DefinedCreateInfiniteQueryResult<TData, TError>;
|
|
63
|
+
export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(injectInfiniteQueryFn: () => DefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, options?: InjectInfiniteQueryOptions): DefinedCreateInfiniteQueryResult<TData, TError>;
|
|
64
64
|
/**
|
|
65
65
|
* Injects an infinite query: a declarative dependency on an asynchronous source of data that is tied to a
|
|
66
66
|
* unique key. Infinite queries can additively "load more" data onto an existing set of data, or
|
|
@@ -200,7 +200,7 @@ declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData
|
|
|
200
200
|
* }
|
|
201
201
|
* ```
|
|
202
202
|
*/
|
|
203
|
-
declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(injectInfiniteQueryFn: () => UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, options?: InjectInfiniteQueryOptions): CreateInfiniteQueryResult<TData, TError>;
|
|
203
|
+
export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(injectInfiniteQueryFn: () => UndefinedInitialDataInfiniteOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, options?: InjectInfiniteQueryOptions): CreateInfiniteQueryResult<TData, TError>;
|
|
204
204
|
/**
|
|
205
205
|
* This overload accepts the general {@link CreateInfiniteQueryOptions} shape rather than the
|
|
206
206
|
* `initialData`-aware overloads above, so whether `data` is defined can't be inferred from the call site —
|
|
@@ -212,7 +212,6 @@ declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData
|
|
|
212
212
|
* @param options - Additional configuration.
|
|
213
213
|
* @returns The infinite query result.
|
|
214
214
|
*/
|
|
215
|
-
declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(injectInfiniteQueryFn: () => CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, options?: InjectInfiniteQueryOptions): CreateInfiniteQueryResult<TData, TError>;
|
|
215
|
+
export declare function injectInfiniteQuery<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown>(injectInfiniteQueryFn: () => CreateInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, options?: InjectInfiniteQueryOptions): CreateInfiniteQueryResult<TData, TError>;
|
|
216
216
|
//#endregion
|
|
217
|
-
export { InjectInfiniteQueryOptions, injectInfiniteQuery };
|
|
218
217
|
//# sourceMappingURL=inject-infinite-query.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-infinite-query.d.mts","names":[],"sources":["../src/inject-infinite-query.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"inject-infinite-query.d.mts","names":[],"sources":["../src/inject-infinite-query.ts"],"mappings":";;;;;iBAwBiB;;;;;;EAMf,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoDG,oBACd,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,sBAEA,6BAA6B,kCAC3B,cACA,QACA,OACA,WACA,aAEF,UAAU,6BACT,iCAAiC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA6I3B,oBACd,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,sBAEA,6BAA6B,oCAC3B,cACA,QACA,OACA,WACA,aAEF,UAAU,6BACT,0BAA0B,OAAO;;;;;;;;;;;;wBAapB,oBACd,cACA,SAAS,cACT,QAAQ,aAAa,eACrB,kBAAkB,WAAW,UAC7B,sBAEA,6BAA6B,2BAC3B,cACA,QACA,OACA,WACA,aAEF,UAAU,6BACT,0BAA0B,OAAO"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injector, Signal } from "@angular/core";
|
|
2
2
|
import { QueryFilters } from "@tanstack/query-core";
|
|
3
3
|
//#region src/inject-is-fetching.d.ts
|
|
4
|
-
interface InjectIsFetchingOptions {
|
|
4
|
+
export interface InjectIsFetchingOptions {
|
|
5
5
|
/**
|
|
6
6
|
* The `Injector` in which to create the isFetching signal.
|
|
7
7
|
*
|
|
@@ -50,7 +50,6 @@ interface InjectIsFetchingOptions {
|
|
|
50
50
|
* }
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
|
-
declare function injectIsFetching(filters?: QueryFilters, options?: InjectIsFetchingOptions): Signal<number>;
|
|
53
|
+
export declare function injectIsFetching(filters?: QueryFilters, options?: InjectIsFetchingOptions): Signal<number>;
|
|
54
54
|
//#endregion
|
|
55
|
-
export { InjectIsFetchingOptions, injectIsFetching };
|
|
56
55
|
//# sourceMappingURL=inject-is-fetching.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-is-fetching.d.mts","names":[],"sources":["../src/inject-is-fetching.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"inject-is-fetching.d.mts","names":[],"sources":["../src/inject-is-fetching.ts"],"mappings":";;;iBAYiB;;;;;;EAMf,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4CG,iBACd,UAAU,cACV,UAAU,0BACT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injector, Signal } from "@angular/core";
|
|
2
2
|
import { MutationFilters } from "@tanstack/query-core";
|
|
3
3
|
//#region src/inject-is-mutating.d.ts
|
|
4
|
-
interface InjectIsMutatingOptions {
|
|
4
|
+
export interface InjectIsMutatingOptions {
|
|
5
5
|
/**
|
|
6
6
|
* The `Injector` in which to create the isMutating signal.
|
|
7
7
|
*
|
|
@@ -33,7 +33,6 @@ interface InjectIsMutatingOptions {
|
|
|
33
33
|
* }
|
|
34
34
|
* ```
|
|
35
35
|
*/
|
|
36
|
-
declare function injectIsMutating(filters?: MutationFilters, options?: InjectIsMutatingOptions): Signal<number>;
|
|
36
|
+
export declare function injectIsMutating(filters?: MutationFilters, options?: InjectIsMutatingOptions): Signal<number>;
|
|
37
37
|
//#endregion
|
|
38
|
-
export { InjectIsMutatingOptions, injectIsMutating };
|
|
39
38
|
//# sourceMappingURL=inject-is-mutating.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-is-mutating.d.mts","names":[],"sources":["../src/inject-is-mutating.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"inject-is-mutating.d.mts","names":[],"sources":["../src/inject-is-mutating.ts"],"mappings":";;;iBAYiB;;;;;;EAMf,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2BG,iBACd,UAAU,iBACV,UAAU,0BACT"}
|
|
@@ -16,7 +16,7 @@ interface InjectIsRestoringOptions {
|
|
|
16
16
|
* @returns A readonly `Signal<boolean>` — `true` while a restore is in progress, `false` otherwise (the
|
|
17
17
|
* default when no `provideIsRestoring` provider is registered).
|
|
18
18
|
*/
|
|
19
|
-
declare function injectIsRestoring(options?: InjectIsRestoringOptions): Signal<boolean>;
|
|
19
|
+
export declare function injectIsRestoring(options?: InjectIsRestoringOptions): Signal<boolean>;
|
|
20
20
|
/**
|
|
21
21
|
* Registers a provider for the restore state read by `injectIsRestoring`. Wire this up wherever you drive a
|
|
22
22
|
* restore yourself — e.g. a persist-client integration — so `injectQuery` and friends can defer subscribing
|
|
@@ -24,7 +24,6 @@ declare function injectIsRestoring(options?: InjectIsRestoringOptions): Signal<b
|
|
|
24
24
|
* @param isRestoring - A readonly `Signal<boolean>` that tracks the restore state.
|
|
25
25
|
* @returns A provider for the `isRestoring` signal.
|
|
26
26
|
*/
|
|
27
|
-
declare function provideIsRestoring(isRestoring: Signal<boolean>): Provider;
|
|
27
|
+
export declare function provideIsRestoring(isRestoring: Signal<boolean>): Provider;
|
|
28
28
|
//#endregion
|
|
29
|
-
export { injectIsRestoring, provideIsRestoring };
|
|
30
29
|
//# sourceMappingURL=inject-is-restoring.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-is-restoring.d.mts","names":[],"sources":["../src/inject-is-restoring.ts"],"mappings":";;UAiBU;;;;;;EAMR,WAAW;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inject-is-restoring.d.mts","names":[],"sources":["../src/inject-is-restoring.ts"],"mappings":";;UAiBU;;;;;;EAMR,WAAW;;;;;;;;;;wBAWG,kBAAkB,UAAU,2BAAwB;;;;;;;;wBAapD,mBAAmB,aAAa,kBAAkB"}
|
|
@@ -5,7 +5,7 @@ type MutationStateOptions<TResult = MutationState> = {
|
|
|
5
5
|
filters?: MutationFilters;
|
|
6
6
|
select?: (mutation: Mutation) => TResult;
|
|
7
7
|
};
|
|
8
|
-
interface InjectMutationStateOptions {
|
|
8
|
+
export interface InjectMutationStateOptions {
|
|
9
9
|
/**
|
|
10
10
|
* The `Injector` in which to create the mutation state signal.
|
|
11
11
|
*
|
|
@@ -70,7 +70,6 @@ interface InjectMutationStateOptions {
|
|
|
70
70
|
* }
|
|
71
71
|
* ```
|
|
72
72
|
*/
|
|
73
|
-
declare function injectMutationState<TResult = MutationState>(injectMutationStateFn?: () => MutationStateOptions<TResult>, options?: InjectMutationStateOptions): Signal<Array<TResult>>;
|
|
73
|
+
export declare function injectMutationState<TResult = MutationState>(injectMutationStateFn?: () => MutationStateOptions<TResult>, options?: InjectMutationStateOptions): Signal<Array<TResult>>;
|
|
74
74
|
//#endregion
|
|
75
|
-
export { InjectMutationStateOptions, injectMutationState };
|
|
76
75
|
//# sourceMappingURL=inject-mutation-state.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-mutation-state.d.mts","names":[],"sources":["../src/inject-mutation-state.ts"],"mappings":";;;KAsBK,qBAAqB,UAAU;EAClC,UAAU;EACV,UAAU,UAAU,aAAa;;
|
|
1
|
+
{"version":3,"file":"inject-mutation-state.d.mts","names":[],"sources":["../src/inject-mutation-state.ts"],"mappings":";;;KAsBK,qBAAqB,UAAU;EAClC,UAAU;EACV,UAAU,UAAU,aAAa;;iBAelB;;;;;;EAMf,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4DG,oBAAoB,UAAU,eAC5C,8BAA6B,qBAAqB,UAClD,UAAU,6BACT,OAAO,MAAM"}
|
|
@@ -2,7 +2,7 @@ import { CreateMutationOptions, CreateMutationResult } from "./types.mjs";
|
|
|
2
2
|
import { Injector } from "@angular/core";
|
|
3
3
|
import { DefaultError } from "@tanstack/query-core";
|
|
4
4
|
//#region src/inject-mutation.d.ts
|
|
5
|
-
interface InjectMutationOptions {
|
|
5
|
+
export interface InjectMutationOptions {
|
|
6
6
|
/**
|
|
7
7
|
* The `Injector` in which to create the mutation.
|
|
8
8
|
*
|
|
@@ -147,7 +147,6 @@ interface InjectMutationOptions {
|
|
|
147
147
|
* }
|
|
148
148
|
* ```
|
|
149
149
|
*/
|
|
150
|
-
declare function injectMutation<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown>(injectMutationFn: () => CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, options?: InjectMutationOptions): CreateMutationResult<TData, TError, TVariables, TOnMutateResult>;
|
|
150
|
+
export declare function injectMutation<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown>(injectMutationFn: () => CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, options?: InjectMutationOptions): CreateMutationResult<TData, TError, TVariables, TOnMutateResult>;
|
|
151
151
|
//#endregion
|
|
152
|
-
export { InjectMutationOptions, injectMutation };
|
|
153
152
|
//# sourceMappingURL=inject-mutation.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-mutation.d.mts","names":[],"sources":["../src/inject-mutation.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"inject-mutation.d.mts","names":[],"sources":["../src/inject-mutation.ts"],"mappings":";;;;iBA2BiB;;;;;;EAMf,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4IG,eACd,iBACA,SAAS,cACT,mBACA,2BAEA,wBAAwB,sBACtB,OACA,QACA,YACA,kBAEF,UAAU,wBACT,qBAAqB,OAAO,QAAQ,YAAY"}
|
|
@@ -53,7 +53,7 @@ type GetCreateQueryResult<T> = T extends {
|
|
|
53
53
|
* @template TDepth - The internal recursion-depth counter, checked against the 20-element limit. It is not
|
|
54
54
|
* meant to be set explicitly.
|
|
55
55
|
*/
|
|
56
|
-
type QueriesOptions<T extends Array<any>, TResults extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<QueryObserverOptionsForCreateQueries> : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryOptionsForCreateQueries<Head>] : T extends [infer Head, ...infer Tails] ? QueriesOptions<[...Tails], [...TResults, GetCreateQueryOptionsForCreateQueries<Head>], [...TDepth, 1]> : ReadonlyArray<unknown> extends T ? T : T extends Array<QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>> ? Array<QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>> : Array<QueryObserverOptionsForCreateQueries>;
|
|
56
|
+
export type QueriesOptions<T extends Array<any>, TResults extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<QueryObserverOptionsForCreateQueries> : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryOptionsForCreateQueries<Head>] : T extends [infer Head, ...infer Tails] ? QueriesOptions<[...Tails], [...TResults, GetCreateQueryOptionsForCreateQueries<Head>], [...TDepth, 1]> : ReadonlyArray<unknown> extends T ? T : T extends Array<QueryObserverOptionsForCreateQueries<infer TQueryFnData, infer TError, infer TData, infer TQueryKey>> ? Array<QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData, TQueryKey>> : Array<QueryObserverOptionsForCreateQueries>;
|
|
57
57
|
/**
|
|
58
58
|
* The result type returned by `injectQueries`, when no `combine` is provided. Mirrors {@link QueriesOptions}:
|
|
59
59
|
* each tuple element's result type is inferred individually, up to 20 elements — past that, tuple recursion
|
|
@@ -66,8 +66,8 @@ type QueriesOptions<T extends Array<any>, TResults extends Array<any> = [], TDep
|
|
|
66
66
|
* @template TDepth - The internal recursion-depth counter, checked against the 20-element limit. It is not
|
|
67
67
|
* meant to be set explicitly.
|
|
68
68
|
*/
|
|
69
|
-
type QueriesResults<T extends Array<any>, TResults extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<CreateQueryResult> : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryResult<Head>] : T extends [infer Head, ...infer Tails] ? QueriesResults<[...Tails], [...TResults, GetCreateQueryResult<Head>], [...TDepth, 1]> : { [K in keyof T]: GetCreateQueryResult<T[K]>; };
|
|
70
|
-
interface InjectQueriesOptions<T extends Array<any>, TCombinedResult = QueriesResults<T>> {
|
|
69
|
+
export type QueriesResults<T extends Array<any>, TResults extends Array<any> = [], TDepth extends ReadonlyArray<number> = []> = TDepth['length'] extends MAXIMUM_DEPTH ? Array<CreateQueryResult> : T extends [] ? [] : T extends [infer Head] ? [...TResults, GetCreateQueryResult<Head>] : T extends [infer Head, ...infer Tails] ? QueriesResults<[...Tails], [...TResults, GetCreateQueryResult<Head>], [...TDepth, 1]> : { [K in keyof T]: GetCreateQueryResult<T[K]>; };
|
|
70
|
+
export interface InjectQueriesOptions<T extends Array<any>, TCombinedResult = QueriesResults<T>> {
|
|
71
71
|
queries: readonly [...QueriesOptions<T>] | readonly [...{ [K in keyof T]: GetCreateQueryOptionsForCreateQueries<T[K]>; }];
|
|
72
72
|
combine?: (result: QueriesResults<T>) => TCombinedResult;
|
|
73
73
|
}
|
|
@@ -205,7 +205,6 @@ interface InjectQueriesOptions<T extends Array<any>, TCombinedResult = QueriesRe
|
|
|
205
205
|
* }
|
|
206
206
|
* ```
|
|
207
207
|
*/
|
|
208
|
-
declare function injectQueries<T extends Array<any>, TCombinedResult = QueriesResults<T>>(optionsFn: () => InjectQueriesOptions<T, TCombinedResult>, injector?: Injector): Signal<TCombinedResult>;
|
|
208
|
+
export declare function injectQueries<T extends Array<any>, TCombinedResult = QueriesResults<T>>(optionsFn: () => InjectQueriesOptions<T, TCombinedResult>, injector?: Injector): Signal<TCombinedResult>;
|
|
209
209
|
//#endregion
|
|
210
|
-
export { InjectQueriesOptions, QueriesOptions, QueriesResults, injectQueries };
|
|
211
210
|
//# sourceMappingURL=inject-queries.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-queries.d.mts","names":[],"sources":["../src/inject-queries.ts"],"mappings":";;;;KAsCK,qCACH,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,YAC3B,UACF,mBAAmB,cAAc,QAAQ,OAAO;EAGhD,kBAAkB,eAAe,+BAA+B;;KAI7D;KAGA;KAEA,sCAAsC,KAEzC;EACE,mBAAmB;EACnB,cAAc;EACd,YAAY;IAEV,qCAAqC,cAAc,QAAQ,SAC3D;EAAY,mBAAmB;EAAc,cAAc;IACzD,qCAAqC,cAAc,UACnD;EAAY,YAAY;EAAO,cAAc;IAC3C,8CAA8C,QAAQ,SAEtD,iBAAiB,oBAAoB,cAAc,SACjD,qCAAqC,cAAc,QAAQ,SAC3D,iBAAiB,oBAAoB,UACnC,qCAAqC,cAAc,UACnD,iBAAiB,gBACf,qCAAqC,gBAErC;EACI,UACI,oBAAoB,oBAAoB,aACxC;EACJ,UAAU,oBAAoB;EAC9B,eAAe,wBAAwB;IAEzC,qCACE,8BACgB,SAAS,eAAe,wBACxB,QAAQ,eAAe,OACvC,aAGF;KAGb,iCAAiC,GAAG,OAAO,oBAAoB;EAClE,oBAAoB;oBAEF,eACd,kBAAkB,OAAO,UACzB,qBAAqB,QACnB,yBAAyB,OAAO,UAChC,kCAAiC,sCACf,qBACd,kBAAkB,OAAO,UACzB,2BAA2B,QACzB,yBAAyB,OAAO,UAChC,kBAAkB,OAAO,UAC7B,kBAAkB,OAAO,UAC/B,kBAAkB,OAAO;KAExB,qBAAqB,KAExB;EAAY;EAAkB,cAAc;EAAQ,YAAY;IAC5D,iCAAiC,GAAG,OAAO,UAC3C;EAAY,mBAAmB;EAAc,cAAc;IACzD,iCAAiC,GAAG,cAAc,UAClD;EAAY,YAAY;EAAO,cAAc;IAC3C,iCAAiC,GAAG,OAAO,UAE3C,sBAAsB,cAAc,SAClC,iCAAiC,GAAG,OAAO,UAC3C,iBAAiB,oBAAoB,UACnC,iCAAiC,GAAG,cAAc,UAClD,iBAAiB,gBACf,iCAAiC,GAAG,gBAEpC;EACI,UACI,oBAAoB,qBACpB;EACJ,UAAU,oBAAoB;EAC9B,eAAe,wBAAwB;IAEzC,iCACE,mBACgB,QAAQ,eAAe,uBACvB,SAAS,eAAe,UAG1C;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inject-queries.d.mts","names":[],"sources":["../src/inject-queries.ts"],"mappings":";;;;KAsCK,qCACH,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,YAC3B,UACF,mBAAmB,cAAc,QAAQ,OAAO;EAGhD,kBAAkB,eAAe,+BAA+B;;KAI7D;KAGA;KAEA,sCAAsC,KAEzC;EACE,mBAAmB;EACnB,cAAc;EACd,YAAY;IAEV,qCAAqC,cAAc,QAAQ,SAC3D;EAAY,mBAAmB;EAAc,cAAc;IACzD,qCAAqC,cAAc,UACnD;EAAY,YAAY;EAAO,cAAc;IAC3C,8CAA8C,QAAQ,SAEtD,iBAAiB,oBAAoB,cAAc,SACjD,qCAAqC,cAAc,QAAQ,SAC3D,iBAAiB,oBAAoB,UACnC,qCAAqC,cAAc,UACnD,iBAAiB,gBACf,qCAAqC,gBAErC;EACI,UACI,oBAAoB,oBAAoB,aACxC;EACJ,UAAU,oBAAoB;EAC9B,eAAe,wBAAwB;IAEzC,qCACE,8BACgB,SAAS,eAAe,wBACxB,QAAQ,eAAe,OACvC,aAGF;KAGb,iCAAiC,GAAG,OAAO,oBAAoB;EAClE,oBAAoB;oBAEF,eACd,kBAAkB,OAAO,UACzB,qBAAqB,QACnB,yBAAyB,OAAO,UAChC,kCAAiC,sCACf,qBACd,kBAAkB,OAAO,UACzB,2BAA2B,QACzB,yBAAyB,OAAO,UAChC,kBAAkB,OAAO,UAC7B,kBAAkB,OAAO,UAC/B,kBAAkB,OAAO;KAExB,qBAAqB,KAExB;EAAY;EAAkB,cAAc;EAAQ,YAAY;IAC5D,iCAAiC,GAAG,OAAO,UAC3C;EAAY,mBAAmB;EAAc,cAAc;IACzD,iCAAiC,GAAG,cAAc,UAClD;EAAY,YAAY;EAAO,cAAc;IAC3C,iCAAiC,GAAG,OAAO,UAE3C,sBAAsB,cAAc,SAClC,iCAAiC,GAAG,OAAO,UAC3C,iBAAiB,oBAAoB,UACnC,iCAAiC,GAAG,cAAc,UAClD,iBAAiB,gBACf,iCAAiC,GAAG,gBAEpC;EACI,UACI,oBAAoB,qBACpB;EACJ,UAAU,oBAAoB;EAC9B,eAAe,wBAAwB;IAEzC,iCACE,mBACgB,QAAQ,eAAe,uBACvB,SAAS,eAAe,UAG1C;;;;;;;;;;;;;;YAeN,eACV,UAAU,YACV,iBAAiB,iBACjB,eAAe,8BACb,yBAAyB,gBACzB,MAAM,wCACN,oBAEE,iBAAiB,YACX,UAAU,sCAAsC,SACpD,iBAAiB,eAAe,SAC9B,mBACM,YACA,UAAU,sCAAsC,YAChD,cAEN,+BAA+B,IAC7B,IAGA,UAAU,MACN,2CACQ,oBACA,cACA,aACA,cAGV,MACE,qCACE,cACA,QACA,OACA,cAIJ,MAAM;;;;;;;;;;;;;YAcR,eACV,UAAU,YACV,iBAAiB,iBACjB,eAAe,8BACb,yBAAyB,gBACzB,MAAM,qBACN,oBAEE,iBAAiB,YACX,UAAU,qBAAqB,SACnC,iBAAiB,eAAe,SAC9B,mBACM,YACA,UAAU,qBAAqB,YAC/B,iBAEH,WAAW,IAAI,qBAAqB,EAAE;iBAElC,qBACf,UAAU,YACV,kBAAkB,eAAe;EAEjC,sBACiB,eAAe,sBAEpB,WAAW,IAAI,sCAAsC,EAAE;EAEnE,WAAW,QAAQ,eAAe,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAyI3B,cACd,UAAU,YACV,kBAAkB,eAAe,IAEjC,iBAAiB,qBAAqB,GAAG,kBACzC,WAAW,WACV,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-queries.mjs","names":[],"sources":["../src/inject-queries.ts"],"sourcesContent":["import {\n QueriesObserver,\n QueryClient,\n notifyManager,\n} from '@tanstack/query-core'\nimport {\n DestroyRef,\n Injector,\n NgZone,\n assertInInjectionContext,\n computed,\n effect,\n inject,\n runInInjectionContext,\n signal,\n untracked,\n} from '@angular/core'\nimport { signalProxy } from './signal-proxy'\nimport { injectIsRestoring } from './inject-is-restoring'\nimport type {\n DefaultError,\n OmitKeyof,\n QueriesObserverOptions,\n QueriesPlaceholderDataFunction,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n ThrowOnError,\n} from '@tanstack/query-core'\nimport type {\n CreateQueryOptions,\n CreateQueryResult,\n DefinedCreateQueryResult,\n} from './types'\nimport type { Signal } from '@angular/core'\n\n// This defines the `CreateQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function always gets undefined passed\ntype QueryObserverOptionsForCreateQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = OmitKeyof<\n CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\n// Widen the type of the symbol to enable type inference even if skipToken is not immutable.\ntype SkipTokenForCreateQueries = symbol\n\ntype GetCreateQueryOptionsForCreateQueries<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverOptionsForCreateQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverOptionsForCreateQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, infer TQueryKey>\n | SkipTokenForCreateQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? QueryObserverOptionsForCreateQueries<\n TQueryFnData,\n unknown extends TError ? DefaultError : TError,\n unknown extends TData ? TQueryFnData : TData,\n TQueryKey\n >\n : // Fallback\n QueryObserverOptionsForCreateQueries\n\n// A defined initialData setting should return a DefinedCreateQueryResult rather than CreateQueryResult\ntype GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {\n initialData?: infer TInitialData\n}\n ? unknown extends TInitialData\n ? CreateQueryResult<TData, TError>\n : TInitialData extends TData\n ? DefinedCreateQueryResult<TData, TError>\n : TInitialData extends () => infer TInitialDataResult\n ? unknown extends TInitialDataResult\n ? CreateQueryResult<TData, TError>\n : TInitialDataResult extends TData\n ? DefinedCreateQueryResult<TData, TError>\n : CreateQueryResult<TData, TError>\n : CreateQueryResult<TData, TError>\n : CreateQueryResult<TData, TError>\n\ntype GetCreateQueryResult<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, any>\n | SkipTokenForCreateQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? GetDefinedOrUndefinedQueryResult<\n T,\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n : // Fallback\n CreateQueryResult\n\n/**\n * The `queries` array accepted by `injectQueries`. Recursively unwraps each tuple element so every entry's\n * `queryFn`/`select`/`throwOnError` are inferred individually, up to 20 elements — past that, tuple\n * recursion falls back to a single homogeneous options type. An opaque array (e.g. `unknown[]`) is returned\n * as-is; a non-tuple array of a known element type is mapped to that element type instead, with no such\n * limit.\n *\n * @template T - The type of the `queries` array as written at the call site.\n * @template TResults - The internal accumulator that this type builds during recursion. It is not meant to\n * be set explicitly.\n * @template TDepth - The internal recursion-depth counter, checked against the 20-element limit. It is not\n * meant to be set explicitly.\n */\nexport type QueriesOptions<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<QueryObserverOptionsForCreateQueries>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetCreateQueryOptionsForCreateQueries<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesOptions<\n [...Tails],\n [...TResults, GetCreateQueryOptionsForCreateQueries<Head>],\n [...TDepth, 1]\n >\n : ReadonlyArray<unknown> extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogeneous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends Array<\n QueryObserverOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >\n >\n ? Array<\n QueryObserverOptionsForCreateQueries<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >\n >\n : // Fallback\n Array<QueryObserverOptionsForCreateQueries>\n\n/**\n * The result type returned by `injectQueries`, when no `combine` is provided. Mirrors {@link QueriesOptions}:\n * each tuple element's result type is inferred individually, up to 20 elements — past that, tuple recursion\n * falls back to a single homogeneous {@link CreateQueryResult} type. A non-tuple array is mapped per-element\n * instead, with no such limit — every entry keeps its individually inferred type regardless of array length.\n *\n * @template T - The type of the `queries` array, as inferred by {@link QueriesOptions}.\n * @template TResults - The internal accumulator that this type builds during recursion. It is not meant to\n * be set explicitly.\n * @template TDepth - The internal recursion-depth counter, checked against the 20-element limit. It is not\n * meant to be set explicitly.\n */\nexport type QueriesResults<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<CreateQueryResult>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetCreateQueryResult<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesResults<\n [...Tails],\n [...TResults, GetCreateQueryResult<Head>],\n [...TDepth, 1]\n >\n : { [K in keyof T]: GetCreateQueryResult<T[K]> }\n\nexport interface InjectQueriesOptions<\n T extends Array<any>,\n TCombinedResult = QueriesResults<T>,\n> {\n queries:\n | readonly [...QueriesOptions<T>]\n | readonly [\n ...{ [K in keyof T]: GetCreateQueryOptionsForCreateQueries<T[K]> },\n ]\n combine?: (result: QueriesResults<T>) => TCombinedResult\n}\n\n/**\n * Injects a signal to fetch a variable number of queries.\n *\n * The `queries` key accepts an array with query option objects mostly identical to `injectQuery`'s. Having\n * the same query key more than once in the array of query objects may cause some data to be shared between\n * queries. To avoid this, consider de-duplicating the queries and map the results back to the desired\n * structure.\n *\n * The `combine` option can be used to combine the results of the queries into a single value. The result\n * will be structurally shared to be as referentially stable as possible.\n *\n * @remarks Unlike `injectQuery`, `injectQueries` cannot infer the `data` argument of an _inline_ `select`\n * from its sibling `queryFn`. Because `injectQueries` infers the type of the whole `queries` array at once,\n * the `select` parameter of a query object written inline cannot be contextually typed from that same\n * object's `queryFn`, so it falls back to `unknown` — a\n * [known TypeScript limitation](https://github.com/TanStack/query/issues/6556). Annotate the `select`\n * parameter explicitly, or define the query with {@link queryOptions}, which resolves its types in a single\n * object _before_ it reaches `injectQueries`, to work around this — see the example below.\n * @param optionsFn - A function returning the queries' options — an array of query option objects under\n * `queries`, and an optional `combine`. Similar to `computed` from Angular, this function runs in the\n * reactive context, so signals read inside it (e.g. to build the `queries` array) drive the queries.\n * @param injector - The `Injector` in which to create the queries. If this is not provided, the current\n * injection context will be used instead (via `inject`).\n * @returns A `Signal` with the combined result. Without `combine`, this is an array with all the query\n * results, in the same order as the input. When `combine` is provided, this is the value returned by\n * `combine` instead.\n *\n * @example\n * ```angular-ts\n * @Component({\n * selector: 'posts',\n * template: `\n * <ul>\n * @for (query of postQueries(); track $index) {\n * @if (query.isPending()) {\n * <li>Loading...</li>\n * } @else if (query.isError()) {\n * <li>Error: {{ query.error()?.message }}</li>\n * } @else {\n * <li>{{ query.data().title }}</li>\n * }\n * }\n * </ul>\n * `,\n * })\n * export class Posts {\n * readonly ids = signal([1, 2, 3])\n *\n * readonly postQueries = injectQueries(() => ({\n * queries: this.ids().map((id) => ({\n * queryKey: ['post', id],\n * queryFn: () => fetchPost(id),\n * staleTime: Infinity,\n * })),\n * }))\n * }\n * ```\n *\n * @example\n * Combining results into a single value:\n * ```angular-ts\n * @Component({\n * selector: 'posts',\n * template: `\n * @if (combined().isPending) {\n * Loading...\n * } @else if (combined().isError) {\n * Error loading posts\n * } @else {\n * <ul>\n * @for (post of combined().data; track post?.id) {\n * <li>{{ post?.title }}</li>\n * }\n * </ul>\n * }\n * `,\n * })\n * export class Posts {\n * readonly ids = signal([1, 2, 3])\n *\n * readonly combined = injectQueries(() => ({\n * queries: this.ids().map((id) => ({\n * queryKey: ['post', id],\n * queryFn: () => fetchPost(id),\n * })),\n * combine: (postQueries) => ({\n * data: postQueries.map((query) => query.data),\n * isPending: postQueries.some((query) => query.isPending),\n * isError: postQueries.some((query) => query.isError),\n * }),\n * }))\n * }\n * ```\n *\n * @example\n * Typing `select` via {@link queryOptions}. Note that spreading a `queryOptions` result and overriding\n * `select` inline still falls back to `unknown` — wrap the spread in `queryOptions` again so the override is\n * resolved before it reaches `injectQueries`:\n * ```angular-ts\n * const postOptions = (id: number) =>\n * queryOptions({\n * queryKey: ['post', id],\n * queryFn: () => fetchPost(id),\n * })\n *\n * @Component({\n * selector: 'post-title',\n * template: `<h1>{{ fixed()[0].data() }}</h1>`,\n * })\n * export class PostTitle {\n * readonly id = signal(1)\n *\n * readonly broken = injectQueries(() => ({\n * queries: [\n * {\n * ...postOptions(this.id()),\n * // ❌ `data` is `unknown` here\n * select: (data) => data.title,\n * },\n * ],\n * }))\n *\n * readonly fixed = injectQueries(() => ({\n * queries: [\n * queryOptions({\n * ...postOptions(this.id()),\n * // ✅ `data` is `Post`\n * select: (data) => data.title,\n * }),\n * ],\n * }))\n * }\n * ```\n */\nexport function injectQueries<\n T extends Array<any>,\n TCombinedResult = QueriesResults<T>,\n>(\n optionsFn: () => InjectQueriesOptions<T, TCombinedResult>,\n injector?: Injector,\n): Signal<TCombinedResult> {\n !injector && assertInInjectionContext(injectQueries)\n return runInInjectionContext(injector ?? inject(Injector), () => {\n const destroyRef = inject(DestroyRef)\n const ngZone = inject(NgZone)\n const queryClient = inject(QueryClient)\n const isRestoring = injectIsRestoring()\n\n /**\n * Signal that has the default options from query client applied\n * computed() is used so signals can be inserted into the options\n * making it reactive. Wrapping options in a function ensures embedded expressions\n * are preserved and can keep being applied after signal changes\n */\n const optionsSignal = computed(() => {\n return optionsFn()\n })\n\n const defaultedQueries = computed(() => {\n return optionsSignal().queries.map((opts) => {\n const defaultedOptions = queryClient.defaultQueryOptions(\n opts as QueryObserverOptions,\n )\n // Make sure the results are already in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring()\n ? 'isRestoring'\n : 'optimistic'\n\n return defaultedOptions as QueryObserverOptions\n })\n })\n\n const observerSignal = (() => {\n let instance: QueriesObserver<TCombinedResult> | null = null\n\n return computed(() => {\n return (instance ||= new QueriesObserver<TCombinedResult>(\n queryClient,\n defaultedQueries(),\n optionsSignal() as QueriesObserverOptions<TCombinedResult>,\n ))\n })\n })()\n\n const optimisticResultSignal = computed(() =>\n observerSignal().getOptimisticResult(\n defaultedQueries(),\n (optionsSignal() as QueriesObserverOptions<TCombinedResult>).combine,\n ),\n )\n\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n effect(() => {\n observerSignal().setQueries(\n defaultedQueries(),\n optionsSignal() as QueriesObserverOptions<TCombinedResult>,\n )\n })\n\n const optimisticCombinedResultSignal = computed(() => {\n const [_optimisticResult, getCombinedResult, trackResult] =\n optimisticResultSignal()\n return getCombinedResult(trackResult())\n })\n\n const resultFromSubscriberSignal = signal<TCombinedResult | null>(null)\n\n effect(() => {\n const observer = observerSignal()\n const [_optimisticResult, getCombinedResult] = optimisticResultSignal()\n\n untracked(() => {\n const unsubscribe = isRestoring()\n ? () => undefined\n : ngZone.runOutsideAngular(() =>\n observer.subscribe(\n notifyManager.batchCalls((state) => {\n resultFromSubscriberSignal.set(getCombinedResult(state))\n }),\n ),\n )\n\n destroyRef.onDestroy(unsubscribe)\n })\n })\n\n const resultSignal = computed(() => {\n const subscriberResult = resultFromSubscriberSignal()\n const optimisticResult = optimisticCombinedResultSignal()\n return subscriberResult ?? optimisticResult\n })\n\n return computed(() => {\n const result = resultSignal()\n const { combine } = optionsSignal()\n\n return combine\n ? result\n : (result as QueriesResults<T>).map((query) =>\n signalProxy(signal(query)),\n )\n })\n }) as unknown as Signal<TCombinedResult>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgXA,SAAgB,cAId,WACA,UACyB;CACzB,CAAC,YAAY,yBAAyB,aAAa;CACnD,OAAO,sBAAsB,YAAY,OAAO,QAAQ,SAAS;EAC/D,MAAM,aAAa,OAAO,UAAU;EACpC,MAAM,SAAS,OAAO,MAAM;EAC5B,MAAM,cAAc,OAAO,WAAW;EACtC,MAAM,cAAc,kBAAkB;;;;;;;EAQtC,MAAM,gBAAgB,eAAe;GACnC,OAAO,UAAU;EACnB,CAAC;EAED,MAAM,mBAAmB,eAAe;GACtC,OAAO,cAAc,CAAC,CAAC,QAAQ,KAAK,SAAS;IAC3C,MAAM,mBAAmB,YAAY,oBACnC,IACF;IAEA,iBAAiB,qBAAqB,YAAY,IAC9C,gBACA;IAEJ,OAAO;GACT,CAAC;EACH,CAAC;EAED,MAAM,wBAAwB;GAC5B,IAAI,WAAoD;GAExD,OAAO,eAAe;IACpB,OAAQ,aAAa,IAAI,gBACvB,aACA,iBAAiB,GACjB,cAAc,CAChB;GACF,CAAC;EACH,EAAA,CAAG;EAEH,MAAM,yBAAyB,eAC7B,eAAe,CAAC,CAAC,oBACf,iBAAiB,GAChB,cAAc,CAAC,CAA6C,OAC/D,CACF;EAIA,aAAa;GACX,eAAe,CAAC,CAAC,WACf,iBAAiB,GACjB,cAAc,CAChB;EACF,CAAC;EAED,MAAM,iCAAiC,eAAe;GACpD,MAAM,CAAC,mBAAmB,mBAAmB,eAC3C,uBAAuB;GACzB,OAAO,kBAAkB,YAAY,CAAC;EACxC,CAAC;EAED,MAAM,6BAA6B,OAA+B,IAAI;EAEtE,aAAa;GACX,MAAM,WAAW,eAAe;GAChC,MAAM,CAAC,mBAAmB,qBAAqB,uBAAuB;GAEtE,gBAAgB;IACd,MAAM,cAAc,YAAY,UACtB,KAAA,IACN,OAAO,wBACL,SAAS,UACP,cAAc,YAAY,UAAU;KAClC,2BAA2B,IAAI,kBAAkB,KAAK,CAAC;IACzD,CAAC,CACH,CACF;IAEJ,WAAW,UAAU,WAAW;GAClC,CAAC;EACH,CAAC;EAED,MAAM,eAAe,eAAe;GAClC,MAAM,mBAAmB,2BAA2B;GACpD,MAAM,mBAAmB,+BAA+B;GACxD,OAAO,oBAAoB;EAC7B,CAAC;EAED,OAAO,eAAe;GACpB,MAAM,SAAS,aAAa;GAC5B,MAAM,EAAE,YAAY,cAAc;GAElC,OAAO,UACH,SACC,OAA6B,KAAK,UACjC,YAAY,OAAO,KAAK,CAAC,CAC3B;EACN,CAAC;CACH,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"inject-queries.mjs","names":[],"sources":["../src/inject-queries.ts"],"sourcesContent":["import {\n QueriesObserver,\n QueryClient,\n notifyManager,\n} from '@tanstack/query-core'\nimport {\n DestroyRef,\n Injector,\n NgZone,\n assertInInjectionContext,\n computed,\n effect,\n inject,\n runInInjectionContext,\n signal,\n untracked,\n} from '@angular/core'\nimport { signalProxy } from './signal-proxy'\nimport { injectIsRestoring } from './inject-is-restoring'\nimport type {\n DefaultError,\n OmitKeyof,\n QueriesObserverOptions,\n QueriesPlaceholderDataFunction,\n QueryFunction,\n QueryKey,\n QueryObserverOptions,\n ThrowOnError,\n} from '@tanstack/query-core'\nimport type {\n CreateQueryOptions,\n CreateQueryResult,\n DefinedCreateQueryResult,\n} from './types'\nimport type { Signal } from '@angular/core'\n\n// This defines the `CreateQueryOptions` that are accepted in `QueriesOptions` & `GetOptions`.\n// `placeholderData` function always gets undefined passed\ntype QueryObserverOptionsForCreateQueries<\n TQueryFnData = unknown,\n TError = DefaultError,\n TData = TQueryFnData,\n TQueryKey extends QueryKey = QueryKey,\n> = OmitKeyof<\n CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>,\n 'placeholderData'\n> & {\n placeholderData?: TQueryFnData | QueriesPlaceholderDataFunction<TQueryFnData>\n}\n\n// Avoid TS depth-limit error in case of large array literal\ntype MAXIMUM_DEPTH = 20\n\n// Widen the type of the symbol to enable type inference even if skipToken is not immutable.\ntype SkipTokenForCreateQueries = symbol\n\ntype GetCreateQueryOptionsForCreateQueries<T> =\n // Part 1: responsible for applying explicit type parameter to function arguments, if object { queryFnData: TQueryFnData, error: TError, data: TData }\n T extends {\n queryFnData: infer TQueryFnData\n error?: infer TError\n data: infer TData\n }\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? QueryObserverOptionsForCreateQueries<unknown, TError, TData>\n : // Part 2: responsible for applying explicit type parameter to function arguments, if tuple [TQueryFnData, TError, TData]\n T extends [infer TQueryFnData, infer TError, infer TData]\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError, TData>\n : T extends [infer TQueryFnData, infer TError]\n ? QueryObserverOptionsForCreateQueries<TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? QueryObserverOptionsForCreateQueries<TQueryFnData>\n : // Part 3: responsible for inferring and enforcing type if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, infer TQueryKey>\n | SkipTokenForCreateQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? QueryObserverOptionsForCreateQueries<\n TQueryFnData,\n unknown extends TError ? DefaultError : TError,\n unknown extends TData ? TQueryFnData : TData,\n TQueryKey\n >\n : // Fallback\n QueryObserverOptionsForCreateQueries\n\n// A defined initialData setting should return a DefinedCreateQueryResult rather than CreateQueryResult\ntype GetDefinedOrUndefinedQueryResult<T, TData, TError = unknown> = T extends {\n initialData?: infer TInitialData\n}\n ? unknown extends TInitialData\n ? CreateQueryResult<TData, TError>\n : TInitialData extends TData\n ? DefinedCreateQueryResult<TData, TError>\n : TInitialData extends () => infer TInitialDataResult\n ? unknown extends TInitialDataResult\n ? CreateQueryResult<TData, TError>\n : TInitialDataResult extends TData\n ? DefinedCreateQueryResult<TData, TError>\n : CreateQueryResult<TData, TError>\n : CreateQueryResult<TData, TError>\n : CreateQueryResult<TData, TError>\n\ntype GetCreateQueryResult<T> =\n // Part 1: responsible for mapping explicit type parameter to function result, if object\n T extends { queryFnData: any; error?: infer TError; data: infer TData }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends { queryFnData: infer TQueryFnData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends { data: infer TData; error?: infer TError }\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : // Part 2: responsible for mapping explicit type parameter to function result, if tuple\n T extends [any, infer TError, infer TData]\n ? GetDefinedOrUndefinedQueryResult<T, TData, TError>\n : T extends [infer TQueryFnData, infer TError]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData, TError>\n : T extends [infer TQueryFnData]\n ? GetDefinedOrUndefinedQueryResult<T, TQueryFnData>\n : // Part 3: responsible for mapping inferred type to results, if no explicit parameter was provided\n T extends {\n queryFn?:\n | QueryFunction<infer TQueryFnData, any>\n | SkipTokenForCreateQueries\n select?: (data: any) => infer TData\n throwOnError?: ThrowOnError<any, infer TError, any, any>\n }\n ? GetDefinedOrUndefinedQueryResult<\n T,\n unknown extends TData ? TQueryFnData : TData,\n unknown extends TError ? DefaultError : TError\n >\n : // Fallback\n CreateQueryResult\n\n/**\n * The `queries` array accepted by `injectQueries`. Recursively unwraps each tuple element so every entry's\n * `queryFn`/`select`/`throwOnError` are inferred individually, up to 20 elements — past that, tuple\n * recursion falls back to a single homogeneous options type. An opaque array (e.g. `unknown[]`) is returned\n * as-is; a non-tuple array of a known element type is mapped to that element type instead, with no such\n * limit.\n *\n * @template T - The type of the `queries` array as written at the call site.\n * @template TResults - The internal accumulator that this type builds during recursion. It is not meant to\n * be set explicitly.\n * @template TDepth - The internal recursion-depth counter, checked against the 20-element limit. It is not\n * meant to be set explicitly.\n */\nexport type QueriesOptions<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<QueryObserverOptionsForCreateQueries>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetCreateQueryOptionsForCreateQueries<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesOptions<\n [...Tails],\n [...TResults, GetCreateQueryOptionsForCreateQueries<Head>],\n [...TDepth, 1]\n >\n : ReadonlyArray<unknown> extends T\n ? T\n : // If T is *some* array but we couldn't assign unknown[] to it, then it must hold some known/homogeneous type!\n // use this to infer the param types in the case of Array.map() argument\n T extends Array<\n QueryObserverOptionsForCreateQueries<\n infer TQueryFnData,\n infer TError,\n infer TData,\n infer TQueryKey\n >\n >\n ? Array<\n QueryObserverOptionsForCreateQueries<\n TQueryFnData,\n TError,\n TData,\n TQueryKey\n >\n >\n : // Fallback\n Array<QueryObserverOptionsForCreateQueries>\n\n/**\n * The result type returned by `injectQueries`, when no `combine` is provided. Mirrors {@link QueriesOptions}:\n * each tuple element's result type is inferred individually, up to 20 elements — past that, tuple recursion\n * falls back to a single homogeneous {@link CreateQueryResult} type. A non-tuple array is mapped per-element\n * instead, with no such limit — every entry keeps its individually inferred type regardless of array length.\n *\n * @template T - The type of the `queries` array, as inferred by {@link QueriesOptions}.\n * @template TResults - The internal accumulator that this type builds during recursion. It is not meant to\n * be set explicitly.\n * @template TDepth - The internal recursion-depth counter, checked against the 20-element limit. It is not\n * meant to be set explicitly.\n */\nexport type QueriesResults<\n T extends Array<any>,\n TResults extends Array<any> = [],\n TDepth extends ReadonlyArray<number> = [],\n> = TDepth['length'] extends MAXIMUM_DEPTH\n ? Array<CreateQueryResult>\n : T extends []\n ? []\n : T extends [infer Head]\n ? [...TResults, GetCreateQueryResult<Head>]\n : T extends [infer Head, ...infer Tails]\n ? QueriesResults<\n [...Tails],\n [...TResults, GetCreateQueryResult<Head>],\n [...TDepth, 1]\n >\n : { [K in keyof T]: GetCreateQueryResult<T[K]> }\n\nexport interface InjectQueriesOptions<\n T extends Array<any>,\n TCombinedResult = QueriesResults<T>,\n> {\n queries:\n | readonly [...QueriesOptions<T>]\n | readonly [\n ...{ [K in keyof T]: GetCreateQueryOptionsForCreateQueries<T[K]> },\n ]\n combine?: (result: QueriesResults<T>) => TCombinedResult\n}\n\n/**\n * Injects a signal to fetch a variable number of queries.\n *\n * The `queries` key accepts an array with query option objects mostly identical to `injectQuery`'s. Having\n * the same query key more than once in the array of query objects may cause some data to be shared between\n * queries. To avoid this, consider de-duplicating the queries and map the results back to the desired\n * structure.\n *\n * The `combine` option can be used to combine the results of the queries into a single value. The result\n * will be structurally shared to be as referentially stable as possible.\n *\n * @remarks Unlike `injectQuery`, `injectQueries` cannot infer the `data` argument of an _inline_ `select`\n * from its sibling `queryFn`. Because `injectQueries` infers the type of the whole `queries` array at once,\n * the `select` parameter of a query object written inline cannot be contextually typed from that same\n * object's `queryFn`, so it falls back to `unknown` — a\n * [known TypeScript limitation](https://github.com/TanStack/query/issues/6556). Annotate the `select`\n * parameter explicitly, or define the query with {@link queryOptions}, which resolves its types in a single\n * object _before_ it reaches `injectQueries`, to work around this — see the example below.\n * @param optionsFn - A function returning the queries' options — an array of query option objects under\n * `queries`, and an optional `combine`. Similar to `computed` from Angular, this function runs in the\n * reactive context, so signals read inside it (e.g. to build the `queries` array) drive the queries.\n * @param injector - The `Injector` in which to create the queries. If this is not provided, the current\n * injection context will be used instead (via `inject`).\n * @returns A `Signal` with the combined result. Without `combine`, this is an array with all the query\n * results, in the same order as the input. When `combine` is provided, this is the value returned by\n * `combine` instead.\n *\n * @example\n * ```angular-ts\n * @Component({\n * selector: 'posts',\n * template: `\n * <ul>\n * @for (query of postQueries(); track $index) {\n * @if (query.isPending()) {\n * <li>Loading...</li>\n * } @else if (query.isError()) {\n * <li>Error: {{ query.error()?.message }}</li>\n * } @else {\n * <li>{{ query.data().title }}</li>\n * }\n * }\n * </ul>\n * `,\n * })\n * export class Posts {\n * readonly ids = signal([1, 2, 3])\n *\n * readonly postQueries = injectQueries(() => ({\n * queries: this.ids().map((id) => ({\n * queryKey: ['post', id],\n * queryFn: () => fetchPost(id),\n * staleTime: Infinity,\n * })),\n * }))\n * }\n * ```\n *\n * @example\n * Combining results into a single value:\n * ```angular-ts\n * @Component({\n * selector: 'posts',\n * template: `\n * @if (combined().isPending) {\n * Loading...\n * } @else if (combined().isError) {\n * Error loading posts\n * } @else {\n * <ul>\n * @for (post of combined().data; track post?.id) {\n * <li>{{ post?.title }}</li>\n * }\n * </ul>\n * }\n * `,\n * })\n * export class Posts {\n * readonly ids = signal([1, 2, 3])\n *\n * readonly combined = injectQueries(() => ({\n * queries: this.ids().map((id) => ({\n * queryKey: ['post', id],\n * queryFn: () => fetchPost(id),\n * })),\n * combine: (postQueries) => ({\n * data: postQueries.map((query) => query.data),\n * isPending: postQueries.some((query) => query.isPending),\n * isError: postQueries.some((query) => query.isError),\n * }),\n * }))\n * }\n * ```\n *\n * @example\n * Typing `select` via {@link queryOptions}. Note that spreading a `queryOptions` result and overriding\n * `select` inline still falls back to `unknown` — wrap the spread in `queryOptions` again so the override is\n * resolved before it reaches `injectQueries`:\n * ```angular-ts\n * const postOptions = (id: number) =>\n * queryOptions({\n * queryKey: ['post', id],\n * queryFn: () => fetchPost(id),\n * })\n *\n * @Component({\n * selector: 'post-title',\n * template: `<h1>{{ fixed()[0].data() }}</h1>`,\n * })\n * export class PostTitle {\n * readonly id = signal(1)\n *\n * readonly broken = injectQueries(() => ({\n * queries: [\n * {\n * ...postOptions(this.id()),\n * // ❌ `data` is `unknown` here\n * select: (data) => data.title,\n * },\n * ],\n * }))\n *\n * readonly fixed = injectQueries(() => ({\n * queries: [\n * queryOptions({\n * ...postOptions(this.id()),\n * // ✅ `data` is `Post`\n * select: (data) => data.title,\n * }),\n * ],\n * }))\n * }\n * ```\n */\nexport function injectQueries<\n T extends Array<any>,\n TCombinedResult = QueriesResults<T>,\n>(\n optionsFn: () => InjectQueriesOptions<T, TCombinedResult>,\n injector?: Injector,\n): Signal<TCombinedResult> {\n !injector && assertInInjectionContext(injectQueries)\n return runInInjectionContext(injector ?? inject(Injector), () => {\n const destroyRef = inject(DestroyRef)\n const ngZone = inject(NgZone)\n const queryClient = inject(QueryClient)\n const isRestoring = injectIsRestoring()\n\n /**\n * Signal that has the default options from query client applied\n * computed() is used so signals can be inserted into the options\n * making it reactive. Wrapping options in a function ensures embedded expressions\n * are preserved and can keep being applied after signal changes\n */\n const optionsSignal = computed(() => {\n return optionsFn()\n })\n\n const defaultedQueries = computed(() => {\n return optionsSignal().queries.map((opts) => {\n const defaultedOptions = queryClient.defaultQueryOptions(\n opts as QueryObserverOptions,\n )\n // Make sure the results are already in fetching state before subscribing or updating options\n defaultedOptions._optimisticResults = isRestoring()\n ? 'isRestoring'\n : 'optimistic'\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n return defaultedOptions as QueryObserverOptions\n })\n })\n\n const observerSignal = (() => {\n let instance: QueriesObserver<TCombinedResult> | null = null\n\n return computed(() => {\n return (instance ||= new QueriesObserver<TCombinedResult>(\n queryClient,\n defaultedQueries(),\n optionsSignal() as QueriesObserverOptions<TCombinedResult>,\n ))\n })\n })()\n\n const optimisticResultSignal = computed(() =>\n observerSignal().getOptimisticResult(\n defaultedQueries(),\n (optionsSignal() as QueriesObserverOptions<TCombinedResult>).combine,\n ),\n )\n\n // Do not notify on updates because of changes in the options because\n // these changes should already be reflected in the optimistic result.\n effect(() => {\n observerSignal().setQueries(\n defaultedQueries(),\n optionsSignal() as QueriesObserverOptions<TCombinedResult>,\n )\n })\n\n const optimisticCombinedResultSignal = computed(() => {\n const [_optimisticResult, getCombinedResult, trackResult] =\n optimisticResultSignal()\n return getCombinedResult(trackResult())\n })\n\n const resultFromSubscriberSignal = signal<TCombinedResult | null>(null)\n\n effect(() => {\n const observer = observerSignal()\n const [_optimisticResult, getCombinedResult] = optimisticResultSignal()\n\n untracked(() => {\n const unsubscribe = isRestoring()\n ? () => undefined\n : ngZone.runOutsideAngular(() =>\n observer.subscribe(\n notifyManager.batchCalls((state) => {\n resultFromSubscriberSignal.set(getCombinedResult(state))\n }),\n ),\n )\n\n destroyRef.onDestroy(unsubscribe)\n })\n })\n\n const resultSignal = computed(() => {\n const subscriberResult = resultFromSubscriberSignal()\n const optimisticResult = optimisticCombinedResultSignal()\n return subscriberResult ?? optimisticResult\n })\n\n return computed(() => {\n const result = resultSignal()\n const { combine } = optionsSignal()\n\n return combine\n ? result\n : (result as QueriesResults<T>).map((query) =>\n signalProxy(signal(query)),\n )\n })\n }) as unknown as Signal<TCombinedResult>\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgXA,SAAgB,cAId,WACA,UACyB;CACzB,CAAC,YAAY,yBAAyB,aAAa;CACnD,OAAO,sBAAsB,YAAY,OAAO,QAAQ,SAAS;EAC/D,MAAM,aAAa,OAAO,UAAU;EACpC,MAAM,SAAS,OAAO,MAAM;EAC5B,MAAM,cAAc,OAAO,WAAW;EACtC,MAAM,cAAc,kBAAkB;;;;;;;EAQtC,MAAM,gBAAgB,eAAe;GACnC,OAAO,UAAU;EACnB,CAAC;EAED,MAAM,mBAAmB,eAAe;GACtC,OAAO,cAAc,CAAC,CAAC,QAAQ,KAAK,SAAS;IAC3C,MAAM,mBAAmB,YAAY,oBACnC,IACF;IAEA,iBAAiB,qBAAqB,YAAY,IAC9C,gBACA;IAGJ,OAAO;GACT,CAAC;EACH,CAAC;EAED,MAAM,wBAAwB;GAC5B,IAAI,WAAoD;GAExD,OAAO,eAAe;IACpB,OAAQ,aAAa,IAAI,gBACvB,aACA,iBAAiB,GACjB,cAAc,CAChB;GACF,CAAC;EACH,EAAA,CAAG;EAEH,MAAM,yBAAyB,eAC7B,eAAe,CAAC,CAAC,oBACf,iBAAiB,GAChB,cAAc,CAAC,CAA6C,OAC/D,CACF;EAIA,aAAa;GACX,eAAe,CAAC,CAAC,WACf,iBAAiB,GACjB,cAAc,CAChB;EACF,CAAC;EAED,MAAM,iCAAiC,eAAe;GACpD,MAAM,CAAC,mBAAmB,mBAAmB,eAC3C,uBAAuB;GACzB,OAAO,kBAAkB,YAAY,CAAC;EACxC,CAAC;EAED,MAAM,6BAA6B,OAA+B,IAAI;EAEtE,aAAa;GACX,MAAM,WAAW,eAAe;GAChC,MAAM,CAAC,mBAAmB,qBAAqB,uBAAuB;GAEtE,gBAAgB;IACd,MAAM,cAAc,YAAY,UACtB,KAAA,IACN,OAAO,wBACL,SAAS,UACP,cAAc,YAAY,UAAU;KAClC,2BAA2B,IAAI,kBAAkB,KAAK,CAAC;IACzD,CAAC,CACH,CACF;IAEJ,WAAW,UAAU,WAAW;GAClC,CAAC;EACH,CAAC;EAED,MAAM,eAAe,eAAe;GAClC,MAAM,mBAAmB,2BAA2B;GACpD,MAAM,mBAAmB,+BAA+B;GACxD,OAAO,oBAAoB;EAC7B,CAAC;EAED,OAAO,eAAe;GACpB,MAAM,SAAS,aAAa;GAC5B,MAAM,EAAE,YAAY,cAAc;GAElC,OAAO,UACH,SACC,OAA6B,KAAK,UACjC,YAAY,OAAO,KAAK,CAAC,CAC3B;EACN,CAAC;CACH,CAAC;AACH"}
|
|
@@ -14,9 +14,8 @@ import { QueryClient } from "@tanstack/query-core";
|
|
|
14
14
|
* const queryClient = injectQueryClient();
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
declare function injectQueryClient(injectOptions?: InjectOptions & {
|
|
17
|
+
export declare function injectQueryClient(injectOptions?: InjectOptions & {
|
|
18
18
|
injector?: Injector;
|
|
19
19
|
}): QueryClient;
|
|
20
20
|
//#endregion
|
|
21
|
-
export { injectQueryClient };
|
|
22
21
|
//# sourceMappingURL=inject-query-client.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-query-client.d.mts","names":[],"sources":["../src/inject-query-client.ts"],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inject-query-client.d.mts","names":[],"sources":["../src/inject-query-client.ts"],"mappings":";;;;;;;;;;;;;;;;wBAiBgB,kBACd,gBAAe;EAAkB,WAAW;IAAe"}
|
package/dist/inject-query.d.mts
CHANGED
|
@@ -3,7 +3,7 @@ import { DefinedInitialDataOptions, UndefinedInitialDataOptions } from "./query-
|
|
|
3
3
|
import { Injector } from "@angular/core";
|
|
4
4
|
import { DefaultError, QueryKey } from "@tanstack/query-core";
|
|
5
5
|
//#region src/inject-query.d.ts
|
|
6
|
-
interface InjectQueryOptions {
|
|
6
|
+
export interface InjectQueryOptions {
|
|
7
7
|
/**
|
|
8
8
|
* The `Injector` in which to create the query.
|
|
9
9
|
*
|
|
@@ -51,7 +51,7 @@ interface InjectQueryOptions {
|
|
|
51
51
|
* }
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
|
-
declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(injectQueryFn: () => DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, options?: InjectQueryOptions): DefinedCreateQueryResult<TData, TError>;
|
|
54
|
+
export declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(injectQueryFn: () => DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, options?: InjectQueryOptions): DefinedCreateQueryResult<TData, TError>;
|
|
55
55
|
/**
|
|
56
56
|
* Injects a query: a declarative dependency on an asynchronous source of data that is tied to a unique key.
|
|
57
57
|
*
|
|
@@ -126,7 +126,7 @@ declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TDat
|
|
|
126
126
|
* }
|
|
127
127
|
* ```
|
|
128
128
|
*/
|
|
129
|
-
declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(injectQueryFn: () => UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, options?: InjectQueryOptions): CreateQueryResult<TData, TError>;
|
|
129
|
+
export declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(injectQueryFn: () => UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>, options?: InjectQueryOptions): CreateQueryResult<TData, TError>;
|
|
130
130
|
/**
|
|
131
131
|
* This overload accepts the general {@link CreateQueryOptions} shape rather than the `initialData`-aware
|
|
132
132
|
* overloads above, so whether `data` is defined can't be inferred from the call site — useful when wrapping
|
|
@@ -139,7 +139,6 @@ declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TDat
|
|
|
139
139
|
* @param options - Additional configuration
|
|
140
140
|
* @returns The query result.
|
|
141
141
|
*/
|
|
142
|
-
declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(injectQueryFn: () => CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, options?: InjectQueryOptions): CreateQueryResult<TData, TError>;
|
|
142
|
+
export declare function injectQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(injectQueryFn: () => CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, options?: InjectQueryOptions): CreateQueryResult<TData, TError>;
|
|
143
143
|
//#endregion
|
|
144
|
-
export { InjectQueryOptions, injectQuery };
|
|
145
144
|
//# sourceMappingURL=inject-query.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-query.d.mts","names":[],"sources":["../src/inject-query.ts"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"inject-query.d.mts","names":[],"sources":["../src/inject-query.ts"],"mappings":";;;;;iBAmBiB;;;;;;EAMf,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA2CG,YACd,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,UAE7B,qBAAqB,0BACnB,cACA,QACA,OACA,YAEF,UAAU,qBACT,yBAAyB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA4EnB,YACd,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,UAE7B,qBAAqB,4BACnB,cACA,QACA,OACA,YAEF,UAAU,qBACT,kBAAkB,OAAO;;;;;;;;;;;;;wBAcZ,YACd,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,UAE7B,qBAAqB,mBACnB,cACA,QACA,OACA,YAEF,UAAU,qBACT,kBAAkB,OAAO"}
|
|
@@ -37,7 +37,7 @@ import { DefaultError, WithRequired } from "@tanstack/query-core";
|
|
|
37
37
|
* }
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
declare function mutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown>(options: WithRequired<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>): WithRequired<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>;
|
|
40
|
+
export declare function mutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown>(options: WithRequired<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>): WithRequired<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>;
|
|
41
41
|
/**
|
|
42
42
|
* You can generally pass everything to `mutationOptions` that you can also pass to `injectMutation`. No
|
|
43
43
|
* `mutationKey` is required on this overload — use this when you don't need to target the mutation via a
|
|
@@ -82,7 +82,6 @@ declare function mutationOptions<TData = unknown, TError = DefaultError, TVariab
|
|
|
82
82
|
* }
|
|
83
83
|
* ```
|
|
84
84
|
*/
|
|
85
|
-
declare function mutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown>(options: Omit<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>): Omit<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>;
|
|
85
|
+
export declare function mutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown>(options: Omit<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>): Omit<CreateMutationOptions<TData, TError, TVariables, TOnMutateResult>, 'mutationKey'>;
|
|
86
86
|
//#endregion
|
|
87
|
-
export { mutationOptions };
|
|
88
87
|
//# sourceMappingURL=mutation-options.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-options.d.mts","names":[],"sources":["../src/mutation-options.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mutation-options.d.mts","names":[],"sources":["../src/mutation-options.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAuCgB,gBACd,iBACA,SAAS,cACT,mBACA,2BAEA,SAAS,aACP,sBAAsB,OAAO,QAAQ,YAAY,mCAGlD,aACD,sBAAsB,OAAO,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA+CnC,gBACd,iBACA,SAAS,cACT,mBACA,2BAEA,SAAS,KACP,sBAAsB,OAAO,QAAQ,YAAY,mCAGlD,KACD,sBAAsB,OAAO,QAAQ,YAAY"}
|
|
@@ -3,8 +3,7 @@ import { InjectionToken } from "@angular/core";
|
|
|
3
3
|
type PendingTasksCompat = {
|
|
4
4
|
add: () => PendingTaskRef;
|
|
5
5
|
};
|
|
6
|
-
type PendingTaskRef = () => void;
|
|
7
|
-
declare const PENDING_TASKS: InjectionToken<PendingTasksCompat>;
|
|
6
|
+
export type PendingTaskRef = () => void;
|
|
7
|
+
export declare const PENDING_TASKS: InjectionToken<PendingTasksCompat>;
|
|
8
8
|
//#endregion
|
|
9
|
-
export { PENDING_TASKS, PendingTaskRef };
|
|
10
9
|
//# sourceMappingURL=pending-tasks-compat.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-tasks-compat.d.mts","names":[],"sources":["../src/pending-tasks-compat.ts"],"mappings":";;KAIK;EAAuB,WAAW;;
|
|
1
|
+
{"version":3,"file":"pending-tasks-compat.d.mts","names":[],"sources":["../src/pending-tasks-compat.ts"],"mappings":";;KAIK;EAAuB,WAAW;;YAE3B;qBAEC,eAAa,eAAA"}
|
package/dist/providers.d.mts
CHANGED
|
@@ -18,7 +18,7 @@ import { QueryClient } from "@tanstack/query-core";
|
|
|
18
18
|
* })
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
-
declare function provideQueryClient(queryClient: QueryClient | InjectionToken<QueryClient>): Provider;
|
|
21
|
+
export declare function provideQueryClient(queryClient: QueryClient | InjectionToken<QueryClient>): Provider;
|
|
22
22
|
/**
|
|
23
23
|
* Sets up providers necessary to enable TanStack Query functionality for Angular applications. Allows
|
|
24
24
|
* configuring a `QueryClient` and optional features such as developer tools.
|
|
@@ -81,7 +81,7 @@ declare function provideQueryClient(queryClient: QueryClient | InjectionToken<Qu
|
|
|
81
81
|
* providers: [provideTanStackQuery(MY_QUERY_CLIENT)]
|
|
82
82
|
* ```
|
|
83
83
|
*/
|
|
84
|
-
declare function provideTanStackQuery(queryClient: QueryClient | InjectionToken<QueryClient>, ...features: Array<QueryFeatures>): Array<Provider>;
|
|
84
|
+
export declare function provideTanStackQuery(queryClient: QueryClient | InjectionToken<QueryClient>, ...features: Array<QueryFeatures>): Array<Provider>;
|
|
85
85
|
/**
|
|
86
86
|
* Sets up providers necessary to enable TanStack Query functionality for Angular applications.
|
|
87
87
|
*
|
|
@@ -91,13 +91,13 @@ declare function provideTanStackQuery(queryClient: QueryClient | InjectionToken<
|
|
|
91
91
|
* @returns A set of providers to set up TanStack Query.
|
|
92
92
|
* @deprecated Use `provideTanStackQuery` instead.
|
|
93
93
|
*/
|
|
94
|
-
declare function provideAngularQuery(queryClient: QueryClient): Array<Provider>;
|
|
94
|
+
export declare function provideAngularQuery(queryClient: QueryClient): Array<Provider>;
|
|
95
95
|
declare const queryFeatures: readonly ["Devtools", "PersistQueryClient"];
|
|
96
96
|
type QueryFeatureKind = (typeof queryFeatures)[number];
|
|
97
97
|
/**
|
|
98
98
|
* Helper type to represent a Query feature.
|
|
99
99
|
*/
|
|
100
|
-
interface QueryFeature<TFeatureKind extends QueryFeatureKind> {
|
|
100
|
+
export interface QueryFeature<TFeatureKind extends QueryFeatureKind> {
|
|
101
101
|
ɵkind: TFeatureKind;
|
|
102
102
|
ɵproviders: Array<Provider>;
|
|
103
103
|
}
|
|
@@ -107,18 +107,18 @@ interface QueryFeature<TFeatureKind extends QueryFeatureKind> {
|
|
|
107
107
|
* @param providers - The Angular providers this feature contributes to `provideTanStackQuery`.
|
|
108
108
|
* @returns A Query feature.
|
|
109
109
|
*/
|
|
110
|
-
declare function queryFeature<TFeatureKind extends QueryFeatureKind>(kind: TFeatureKind, providers: Array<Provider>): QueryFeature<TFeatureKind>;
|
|
110
|
+
export declare function queryFeature<TFeatureKind extends QueryFeatureKind>(kind: TFeatureKind, providers: Array<Provider>): QueryFeature<TFeatureKind>;
|
|
111
111
|
/**
|
|
112
112
|
* A type alias that represents a feature which enables developer tools.
|
|
113
113
|
* The type is used to describe the return value of the `withDevtools` function.
|
|
114
114
|
* @see {@link withDevtools}
|
|
115
115
|
*/
|
|
116
|
-
type DevtoolsFeature = QueryFeature<'Devtools'>;
|
|
116
|
+
export type DevtoolsFeature = QueryFeature<'Devtools'>;
|
|
117
117
|
/**
|
|
118
118
|
* A type alias that represents a feature which enables persistence.
|
|
119
119
|
* The type is used to describe the return value of the `withPersistQueryClient` function.
|
|
120
120
|
*/
|
|
121
|
-
type PersistQueryClientFeature = QueryFeature<'PersistQueryClient'>;
|
|
121
|
+
export type PersistQueryClientFeature = QueryFeature<'PersistQueryClient'>;
|
|
122
122
|
/**
|
|
123
123
|
* A type alias that represents all Query features available for use with `provideTanStackQuery`.
|
|
124
124
|
* Features can be enabled by adding special functions to the `provideTanStackQuery` call.
|
|
@@ -126,7 +126,6 @@ type PersistQueryClientFeature = QueryFeature<'PersistQueryClient'>;
|
|
|
126
126
|
* documentation on how to use those functions.
|
|
127
127
|
* @see {@link provideTanStackQuery}
|
|
128
128
|
*/
|
|
129
|
-
type QueryFeatures = DevtoolsFeature | PersistQueryClientFeature;
|
|
129
|
+
export type QueryFeatures = DevtoolsFeature | PersistQueryClientFeature;
|
|
130
130
|
//#endregion
|
|
131
|
-
export { DevtoolsFeature, PersistQueryClientFeature, QueryFeature, QueryFeatures, provideAngularQuery, provideQueryClient, provideTanStackQuery, queryFeature };
|
|
132
131
|
//# sourceMappingURL=providers.d.mts.map
|
package/dist/providers.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.mts","names":[],"sources":["../src/providers.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"providers.d.mts","names":[],"sources":["../src/providers.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;wBAqBgB,mBACd,aAAa,cAAc,eAAe,eACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA8Ea,qBACd,aAAa,cAAc,eAAe,iBACvC,UAAU,MAAM,iBAClB,MAAM;;;;;;;;;;wBAgBO,oBAAoB,aAAa,cAAc,MAAM;cAI/D;KAED,2BAA2B;;;;iBAKf,aAAa,qBAAqB;EACjD,OAAO;EACP,YAAY,MAAM;;;;;;;;wBASJ,aAAa,qBAAqB,kBAChD,MAAM,cACN,WAAW,MAAM,YAChB,aAAa;;;;;;YASJ,kBAAkB;;;;;YAMlB,4BAA4B;;;;;;;;YAS5B,gBAAgB,kBAAkB"}
|
package/dist/query-options.d.mts
CHANGED
|
@@ -10,7 +10,7 @@ import { DefaultError, InitialDataFunction, NonUndefinedGuard, OmitKeyof, QueryF
|
|
|
10
10
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
11
11
|
* @template TQueryKey - The type of your `queryKey`.
|
|
12
12
|
*/
|
|
13
|
-
type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
13
|
+
export type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
|
|
14
14
|
/**
|
|
15
15
|
* If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
|
16
16
|
* created or cached yet). If set to a function, the function will be called **once** during the shared/root
|
|
@@ -29,7 +29,7 @@ type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError,
|
|
|
29
29
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
30
30
|
* @template TQueryKey - The type of your `queryKey`.
|
|
31
31
|
*/
|
|
32
|
-
type UnusedSkipTokenOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = OmitKeyof<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
|
|
32
|
+
export type UnusedSkipTokenOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = OmitKeyof<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
|
|
33
33
|
/**
|
|
34
34
|
* `skipToken` is not allowed as a value here — this overload is selected when no `initialData` is set. If
|
|
35
35
|
* you don't intend to run the query yet, set `enabled: false` — omitting `queryFn` alone still triggers a
|
|
@@ -47,7 +47,7 @@ type UnusedSkipTokenOptions<TQueryFnData = unknown, TError = DefaultError, TData
|
|
|
47
47
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
48
48
|
* @template TQueryKey - The type of your `queryKey`.
|
|
49
49
|
*/
|
|
50
|
-
type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
|
|
50
|
+
export type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = Omit<CreateQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryFn'> & {
|
|
51
51
|
/**
|
|
52
52
|
* If set, this value will be used as the initial data for the query cache (as long as the query hasn't been
|
|
53
53
|
* created or cached yet). If set to a function, the function will be called **once** during the shared/root
|
|
@@ -107,7 +107,7 @@ type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TD
|
|
|
107
107
|
* }
|
|
108
108
|
* ```
|
|
109
109
|
*/
|
|
110
|
-
declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
|
110
|
+
export declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
|
111
111
|
/**
|
|
112
112
|
* You can generally pass everything to `queryOptions` that you can also pass to `injectQuery`. These options
|
|
113
113
|
* can be shared across functions and imperative APIs such as `queryClient.fetchQuery`. `options.queryKey` is
|
|
@@ -147,7 +147,7 @@ declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TDa
|
|
|
147
147
|
* }
|
|
148
148
|
* ```
|
|
149
149
|
*/
|
|
150
|
-
declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey>): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
|
150
|
+
export declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey>): UnusedSkipTokenOptions<TQueryFnData, TError, TData, TQueryKey> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
|
151
151
|
/**
|
|
152
152
|
* You can generally pass everything to `queryOptions` that you can also pass to `injectQuery`. These options
|
|
153
153
|
* can be shared across functions and imperative APIs such as `queryClient.fetchQuery`. `options.queryKey` is
|
|
@@ -219,7 +219,6 @@ declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TDa
|
|
|
219
219
|
* }
|
|
220
220
|
* ```
|
|
221
221
|
*/
|
|
222
|
-
declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
|
222
|
+
export declare function queryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(options: UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>): UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey> & QueryKeyWithDataTag<TQueryKey, TQueryFnData, TError>;
|
|
223
223
|
//#endregion
|
|
224
|
-
export { DefinedInitialDataOptions, UndefinedInitialDataOptions, UnusedSkipTokenOptions, queryOptions };
|
|
225
224
|
//# sourceMappingURL=query-options.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-options.d.mts","names":[],"sources":["../src/query-options.ts"],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"query-options.d.mts","names":[],"sources":["../src/query-options.ts"],"mappings":";;;;;;;;;;;;YAqBY,4BACV,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,YAC3B,mBAAmB,cAAc,QAAQ,OAAO;;;;;;;;EAQlD,0BAEI,oBAAoB,kBAAkB,iBACtC,kBAAkB;;;;;;;;;;;YAYZ,uBACV,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,YAC3B,UACF,mBAAmB,cAAc,QAAQ,OAAO;;;;;;;EAShD,UAAU,QACR,mBAAmB,cAAc,QAAQ,OAAO,uBAChD;;;;;;;;;;;YAaQ,0BACV,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,YAC3B,KACF,mBAAmB,cAAc,QAAQ,OAAO;;;;;;;;EAUhD,aACE,kBAAkB,uBAAuB,kBAAkB;;;;;;EAM7D,UAAU,cAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA+CxB,aACd,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,UAE7B,SAAS,0BAA0B,cAAc,QAAQ,OAAO,aAC/D,0BAA0B,cAAc,QAAQ,OAAO,aACxD,oBAAoB,WAAW,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAyC/B,aACd,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,UAE7B,SAAS,uBAAuB,cAAc,QAAQ,OAAO,aAC5D,uBAAuB,cAAc,QAAQ,OAAO,aACrD,oBAAoB,WAAW,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAyE/B,aACd,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,UAE7B,SAAS,4BAA4B,cAAc,QAAQ,OAAO,aACjE,4BAA4B,cAAc,QAAQ,OAAO,aAC1D,oBAAoB,WAAW,cAAc"}
|
package/dist/signal-proxy.d.mts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { Signal } from "@angular/core";
|
|
2
2
|
//#region src/signal-proxy.d.ts
|
|
3
|
-
type MapToSignals<T> = { [K in keyof T]: T[K] extends Function ? T[K] : Signal<T[K]>; };
|
|
3
|
+
export type MapToSignals<T> = { [K in keyof T]: T[K] extends Function ? T[K] : Signal<T[K]>; };
|
|
4
4
|
/**
|
|
5
5
|
* Exposes fields of an object passed via an Angular `Signal` as `Computed` signals.
|
|
6
6
|
* Functions on the object are passed through as-is.
|
|
7
7
|
* @param inputSignal - `Signal` that must return an object.
|
|
8
8
|
* @returns A proxy object with the same fields as the input object, but with each field wrapped in a `Computed` signal.
|
|
9
9
|
*/
|
|
10
|
-
declare function signalProxy<TInput extends Record<string | symbol, any>>(inputSignal: Signal<TInput>): MapToSignals<TInput>;
|
|
10
|
+
export declare function signalProxy<TInput extends Record<string | symbol, any>>(inputSignal: Signal<TInput>): MapToSignals<TInput>;
|
|
11
11
|
//#endregion
|
|
12
|
-
export { MapToSignals, signalProxy };
|
|
13
12
|
//# sourceMappingURL=signal-proxy.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-proxy.d.mts","names":[],"sources":["../src/signal-proxy.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"signal-proxy.d.mts","names":[],"sources":["../src/signal-proxy.ts"],"mappings":";;YAGY,aAAa,QACtB,WAAW,IAAI,EAAE,WAAW,WAAW,EAAE,KAAK,OAAO,EAAE;;;;;;;wBAS1C,YAAY,eAAe,8BACzC,aAAa,OAAO,UAAO,aAAA"}
|
package/dist/types.d.mts
CHANGED
|
@@ -15,7 +15,7 @@ import { DefaultError, DefinedInfiniteQueryObserverResult, DefinedQueryObserverR
|
|
|
15
15
|
* `placeholderData`. Defaults to, and is usually the same as, `TQueryFnData`.
|
|
16
16
|
* @template TQueryKey - The type of your `queryKey`.
|
|
17
17
|
*/
|
|
18
|
-
interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {}
|
|
18
|
+
export interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey> {}
|
|
19
19
|
/**
|
|
20
20
|
* The options accepted by `injectQuery`. Same as {@link CreateBaseQueryOptions}, minus `suspense` — which
|
|
21
21
|
* `angular-query-experimental` doesn't support, unlike `react-query`.
|
|
@@ -26,7 +26,7 @@ interface CreateBaseQueryOptions<TQueryFnData = unknown, TError = DefaultError,
|
|
|
26
26
|
* `select` is used.
|
|
27
27
|
* @template TQueryKey - The type of your `queryKey`.
|
|
28
28
|
*/
|
|
29
|
-
interface CreateQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'suspense'> {}
|
|
29
|
+
export interface CreateQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends OmitKeyof<CreateBaseQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'suspense'> {}
|
|
30
30
|
type CreateStatusBasedQueryResult<TStatus extends QueryObserverResult['status'], TData = unknown, TError = DefaultError> = Extract<QueryObserverResult<TData, TError>, {
|
|
31
31
|
status: TStatus;
|
|
32
32
|
}>;
|
|
@@ -39,7 +39,7 @@ type CreateStatusBasedQueryResult<TStatus extends QueryObserverResult['status'],
|
|
|
39
39
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
40
40
|
* @template TError - The type of errors your `queryFn` may throw.
|
|
41
41
|
*/
|
|
42
|
-
interface BaseQueryNarrowing<TData = unknown, TError = DefaultError> {
|
|
42
|
+
export interface BaseQueryNarrowing<TData = unknown, TError = DefaultError> {
|
|
43
43
|
isSuccess: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'success', TData, TError>>;
|
|
44
44
|
isError: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'error', TData, TError>>;
|
|
45
45
|
isPending: (this: CreateBaseQueryResult<TData, TError>) => this is CreateBaseQueryResult<TData, TError, CreateStatusBasedQueryResult<'pending', TData, TError>>;
|
|
@@ -58,7 +58,7 @@ interface BaseQueryNarrowing<TData = unknown, TError = DefaultError> {
|
|
|
58
58
|
* @template TQueryKey - The type of your `queryKey`.
|
|
59
59
|
* @template TPageParam - The type of the parameter passed to `queryFn` to fetch a given page.
|
|
60
60
|
*/
|
|
61
|
-
interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, 'suspense'> {}
|
|
61
|
+
export interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends OmitKeyof<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryKey, TPageParam>, 'suspense'> {}
|
|
62
62
|
/**
|
|
63
63
|
* The result of `injectQuery` when `initialData` isn't set — `data` may be `undefined` while the query is
|
|
64
64
|
* `pending`. Same shape as {@link QueryObserverResult} from `@tanstack/query-core`, but value fields (like
|
|
@@ -70,14 +70,14 @@ interface CreateInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultErr
|
|
|
70
70
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
71
71
|
* @template TError - The type of errors your `queryFn` may throw.
|
|
72
72
|
*/
|
|
73
|
-
type CreateBaseQueryResult<TData = unknown, TError = DefaultError, TState = QueryObserverResult<TData, TError>> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, 'safely'>>;
|
|
73
|
+
export type CreateBaseQueryResult<TData = unknown, TError = DefaultError, TState = QueryObserverResult<TData, TError>> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, 'safely'>>;
|
|
74
74
|
/**
|
|
75
75
|
* The result of `injectQuery`. Same as {@link CreateBaseQueryResult}.
|
|
76
76
|
*
|
|
77
77
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
78
78
|
* @template TError - The type of errors your `queryFn` may throw.
|
|
79
79
|
*/
|
|
80
|
-
type CreateQueryResult<TData = unknown, TError = DefaultError> = CreateBaseQueryResult<TData, TError>;
|
|
80
|
+
export type CreateQueryResult<TData = unknown, TError = DefaultError> = CreateBaseQueryResult<TData, TError>;
|
|
81
81
|
/**
|
|
82
82
|
* The result of `injectQuery` when `initialData` is set — `data` is never `undefined`. Same shape as
|
|
83
83
|
* {@link DefinedQueryObserverResult} from `@tanstack/query-core`, but value fields are exposed as a
|
|
@@ -86,7 +86,7 @@ type CreateQueryResult<TData = unknown, TError = DefaultError> = CreateBaseQuery
|
|
|
86
86
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
87
87
|
* @template TError - The type of errors your `queryFn` may throw.
|
|
88
88
|
*/
|
|
89
|
-
type DefinedCreateQueryResult<TData = unknown, TError = DefaultError, TState = DefinedQueryObserverResult<TData, TError>> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, 'safely'>>;
|
|
89
|
+
export type DefinedCreateQueryResult<TData = unknown, TError = DefaultError, TState = DefinedQueryObserverResult<TData, TError>> = BaseQueryNarrowing<TData, TError> & MapToSignals<OmitKeyof<TState, keyof BaseQueryNarrowing, 'safely'>>;
|
|
90
90
|
/**
|
|
91
91
|
* The result of `injectInfiniteQuery` when `initialData` isn't set — `data` may be `undefined` while the
|
|
92
92
|
* query is `pending`. Same shape as {@link InfiniteQueryObserverResult} from `@tanstack/query-core`, but
|
|
@@ -96,7 +96,7 @@ type DefinedCreateQueryResult<TData = unknown, TError = DefaultError, TState = D
|
|
|
96
96
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
97
97
|
* @template TError - The type of errors your `queryFn` may throw.
|
|
98
98
|
*/
|
|
99
|
-
type CreateInfiniteQueryResult<TData = unknown, TError = DefaultError> = BaseQueryNarrowing<TData, TError> & MapToSignals<InfiniteQueryObserverResult<TData, TError>>;
|
|
99
|
+
export type CreateInfiniteQueryResult<TData = unknown, TError = DefaultError> = BaseQueryNarrowing<TData, TError> & MapToSignals<InfiniteQueryObserverResult<TData, TError>>;
|
|
100
100
|
/**
|
|
101
101
|
* The result of `injectInfiniteQuery` when `initialData` is set — `data` is never `undefined`. Same shape as
|
|
102
102
|
* {@link DefinedInfiniteQueryObserverResult} from `@tanstack/query-core`, but value fields are exposed as a
|
|
@@ -105,7 +105,7 @@ type CreateInfiniteQueryResult<TData = unknown, TError = DefaultError> = BaseQue
|
|
|
105
105
|
* @template TData - The type `data` ends up as after `select` runs.
|
|
106
106
|
* @template TError - The type of errors your `queryFn` may throw.
|
|
107
107
|
*/
|
|
108
|
-
type DefinedCreateInfiniteQueryResult<TData = unknown, TError = DefaultError, TDefinedInfiniteQueryObserver = DefinedInfiniteQueryObserverResult<TData, TError>> = MapToSignals<TDefinedInfiniteQueryObserver>;
|
|
108
|
+
export type DefinedCreateInfiniteQueryResult<TData = unknown, TError = DefaultError, TDefinedInfiniteQueryObserver = DefinedInfiniteQueryObserverResult<TData, TError>> = MapToSignals<TDefinedInfiniteQueryObserver>;
|
|
109
109
|
/**
|
|
110
110
|
* The options accepted by `injectMutation`. Same as {@link MutationObserverOptions} from
|
|
111
111
|
* `@tanstack/query-core`, minus the internal `_defaulted` flag.
|
|
@@ -116,7 +116,7 @@ type DefinedCreateInfiniteQueryResult<TData = unknown, TError = DefaultError, TD
|
|
|
116
116
|
* @template TOnMutateResult - The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
|
117
117
|
* their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
|
118
118
|
*/
|
|
119
|
-
interface CreateMutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown> extends OmitKeyof<MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>, '_defaulted'> {}
|
|
119
|
+
export interface CreateMutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown> extends OmitKeyof<MutationObserverOptions<TData, TError, TVariables, TOnMutateResult>, '_defaulted'> {}
|
|
120
120
|
/**
|
|
121
121
|
* The type of `mutate`, as returned by `injectMutation`. Forwards the variables (and an optional per-call
|
|
122
122
|
* `onSuccess`/`onError`/`onSettled`) to the underlying `mutate` call. Fire-and-forget — errors are surfaced
|
|
@@ -128,7 +128,7 @@ interface CreateMutationOptions<TData = unknown, TError = DefaultError, TVariabl
|
|
|
128
128
|
* @template TOnMutateResult - The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
|
129
129
|
* their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
|
130
130
|
*/
|
|
131
|
-
type CreateMutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TOnMutateResult>>) => void;
|
|
131
|
+
export type CreateMutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown> = (...args: Parameters<MutateFunction<TData, TError, TVariables, TOnMutateResult>>) => void;
|
|
132
132
|
/**
|
|
133
133
|
* The type of `mutateAsync`, as returned by `injectMutation`. Similar to {@link CreateMutateFunction}, but
|
|
134
134
|
* returns a promise which can be awaited.
|
|
@@ -139,7 +139,7 @@ type CreateMutateFunction<TData = unknown, TError = DefaultError, TVariables = v
|
|
|
139
139
|
* @template TOnMutateResult - The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
|
140
140
|
* their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
|
141
141
|
*/
|
|
142
|
-
type CreateMutateAsyncFunction<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown> = MutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
142
|
+
export type CreateMutateAsyncFunction<TData = unknown, TError = DefaultError, TVariables = void, TOnMutateResult = unknown> = MutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
143
143
|
/**
|
|
144
144
|
* The pre-`Signal` shape {@link CreateMutationResult} is built from — not what `injectMutation` actually
|
|
145
145
|
* returns. Same as {@link MutationObserverResult} from `@tanstack/query-core`, with `mutate` narrowed to the
|
|
@@ -151,7 +151,7 @@ type CreateMutateAsyncFunction<TData = unknown, TError = DefaultError, TVariable
|
|
|
151
151
|
* @template TOnMutateResult - The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
|
152
152
|
* their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
|
153
153
|
*/
|
|
154
|
-
type CreateBaseMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TOnMutateResult>, {
|
|
154
|
+
export type CreateBaseMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown> = Override<MutationObserverResult<TData, TError, TVariables, TOnMutateResult>, {
|
|
155
155
|
mutate: CreateMutateFunction<TData, TError, TVariables, TOnMutateResult>;
|
|
156
156
|
}> & {
|
|
157
157
|
/**
|
|
@@ -174,7 +174,7 @@ type SignalFunction<T extends () => any> = T & Signal<ReturnType<T>>;
|
|
|
174
174
|
* @template TOnMutateResult - The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
|
175
175
|
* their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
|
176
176
|
*/
|
|
177
|
-
interface BaseMutationNarrowing<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown> {
|
|
177
|
+
export interface BaseMutationNarrowing<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown> {
|
|
178
178
|
isSuccess: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TOnMutateResult>) => this is CreateMutationResult<TData, TError, TVariables, TOnMutateResult, CreateStatusBasedMutationResult<'success', TData, TError, TVariables, TOnMutateResult>>>;
|
|
179
179
|
isError: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TOnMutateResult>) => this is CreateMutationResult<TData, TError, TVariables, TOnMutateResult, CreateStatusBasedMutationResult<'error', TData, TError, TVariables, TOnMutateResult>>>;
|
|
180
180
|
isPending: SignalFunction<(this: CreateMutationResult<TData, TError, TVariables, TOnMutateResult>) => this is CreateMutationResult<TData, TError, TVariables, TOnMutateResult, CreateStatusBasedMutationResult<'pending', TData, TError, TVariables, TOnMutateResult>>>;
|
|
@@ -192,7 +192,6 @@ interface BaseMutationNarrowing<TData = unknown, TError = DefaultError, TVariabl
|
|
|
192
192
|
* @template TOnMutateResult - The type returned by `onMutate`, passed to `onSuccess`/`onError`/`onSettled` as
|
|
193
193
|
* their `onMutateResult` parameter — useful for optimistic-update rollback data.
|
|
194
194
|
*/
|
|
195
|
-
type CreateMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown, TState = CreateStatusBasedMutationResult<CreateBaseMutationResult['status'], TData, TError, TVariables, TOnMutateResult>> = BaseMutationNarrowing<TData, TError, TVariables, TOnMutateResult> & MapToSignals<OmitKeyof<TState, keyof BaseMutationNarrowing, 'safely'>>;
|
|
195
|
+
export type CreateMutationResult<TData = unknown, TError = DefaultError, TVariables = unknown, TOnMutateResult = unknown, TState = CreateStatusBasedMutationResult<CreateBaseMutationResult['status'], TData, TError, TVariables, TOnMutateResult>> = BaseMutationNarrowing<TData, TError, TVariables, TOnMutateResult> & MapToSignals<OmitKeyof<TState, keyof BaseMutationNarrowing, 'safely'>>;
|
|
196
196
|
//#endregion
|
|
197
|
-
export { BaseMutationNarrowing, BaseQueryNarrowing, CreateBaseMutationResult, CreateBaseQueryOptions, CreateBaseQueryResult, CreateInfiniteQueryOptions, CreateInfiniteQueryResult, CreateMutateAsyncFunction, CreateMutateFunction, CreateMutationOptions, CreateMutationResult, CreateQueryOptions, CreateQueryResult, DefinedCreateInfiniteQueryResult, DefinedCreateQueryResult };
|
|
198
197
|
//# sourceMappingURL=types.d.mts.map
|
package/dist/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;;;;;;;;;iBAiCiB,uBACf,wBACA,SAAS,cACT,QAAQ,cACR,aAAa,cACb,kBAAkB,WAAW,kBACrB,qBACR,cACA,QACA,OACA,YACA;;;;;;;;;;;iBAae,mBACf,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,kBACrB,UACR,uBAAuB,cAAc,QAAQ,OAAO,cAAc;KAI/D,6BACH,gBAAgB,+BAChB,iBACA,SAAS,gBACP,QAAQ,oBAAoB,OAAO;EAAW,QAAQ;;;;;;;;;;;iBAWzC,mBAAmB,iBAAiB,SAAS;EAC5D,YACE,MAAM,sBAAsB,OAAO,oBACxB,sBACX,OACA,QACA,wCAAwC,OAAO;EAEjD,UACE,MAAM,sBAAsB,OAAO,oBACxB,sBACX,OACA,QACA,sCAAsC,OAAO;EAE/C,YACE,MAAM,sBAAsB,OAAO,oBACxB,sBACX,OACA,QACA,wCAAwC,OAAO;;;;;;;;;;;;;;;;iBAkBlC,2BACf,wBACA,SAAS,cACT,QAAQ,cACR,kBAAkB,WAAW,UAC7B,8BACQ,UACR,6BACE,cACA,QACA,OACA,WACA;;;;;;;;;;;;YAgBQ,sBACV,iBACA,SAAS,cACT,SAAS,oBAAoB,OAAO,WAClC,mBAAmB,OAAO,UAC5B,aAAa,UAAU,cAAc;;;;;;;YAQ3B,kBACV,iBACA,SAAS,gBACP,sBAAsB,OAAO;;;;;;;;;YAUrB,yBACV,iBACA,SAAS,cACT,SAAS,2BAA2B,OAAO,WACzC,mBAAmB,OAAO,UAC5B,aAAa,UAAU,cAAc;;;;;;;;;;YAW3B,0BACV,iBACA,SAAS,gBACP,mBAAmB,OAAO,UAC5B,aAAa,4BAA4B,OAAO;;;;;;;;;YAUtC,iCACV,iBACA,SAAS,cACT,gCAAgC,mCAC9B,OACA,WAEA,aAAa;;;;;;;;;;;iBAYA,sBACf,iBACA,SAAS,cACT,mBACA,mCACQ,UACR,wBAAwB,OAAO,QAAQ,YAAY;;;;;;;;;;;;YAezC,qBACV,iBACA,SAAS,cACT,mBACA,iCAEG,MAAM,WACP,eAAe,OAAO,QAAQ,YAAY;;;;;;;;;;;YAclC,0BACV,iBACA,SAAS,cACT,mBACA,6BACE,eAAe,OAAO,QAAQ,YAAY;;;;;;;;;;;;YAalC,yBACV,iBACA,SAAS,cACT,sBACA,6BACE,SACF,uBAAuB,OAAO,QAAQ,YAAY;EAChD,QAAQ,qBAAqB,OAAO,QAAQ,YAAY;;;;;EAK1D,aAAa,0BACX,OACA,QACA,YACA;;KAIC,gCACH,gBAAgB,oCAChB,iBACA,SAAS,cACT,sBACA,6BACE,QACF,yBAAyB,OAAO,QAAQ,YAAY;EAClD,QAAQ;;KAGP,eAAe,uBAAuB,IAAI,OAAO,WAAW;;;;;;;;;;;;iBAahD,sBACf,iBACA,SAAS,cACT,sBACA;EAEA,WAAW,gBAEP,MAAM,qBAAqB,OAAO,QAAQ,YAAY,6BAC3C,qBACX,OACA,QACA,YACA,iBACA,2CAEE,OACA,QACA,YACA;EAIN,SAAS,gBAEL,MAAM,qBAAqB,OAAO,QAAQ,YAAY,6BAC3C,qBACX,OACA,QACA,YACA,iBACA,yCAEE,OACA,QACA,YACA;EAIN,WAAW,gBAEP,MAAM,qBAAqB,OAAO,QAAQ,YAAY,6BAC3C,qBACX,OACA,QACA,YACA,iBACA,2CAEE,OACA,QACA,YACA;EAIN,QAAQ,gBAEJ,MAAM,qBAAqB,OAAO,QAAQ,YAAY,6BAC3C,qBACX,OACA,QACA,YACA,iBACA,wCAEE,OACA,QACA,YACA;;;;;;;;;;;;;;YAkBI,qBACV,iBACA,SAAS,cACT,sBACA,2BACA,SAAS,gCACP,oCACA,OACA,QACA,YACA,oBAEA,sBAAsB,OAAO,QAAQ,YAAY,mBACnD,aAAa,UAAU,cAAc"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/angular-query-experimental",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.104.0",
|
|
4
4
|
"description": "Signals for managing, caching and syncing asynchronous and remote data in Angular",
|
|
5
5
|
"author": "Arnoud de Vries",
|
|
6
6
|
"license": "MIT",
|
|
@@ -64,20 +64,22 @@
|
|
|
64
64
|
"src"
|
|
65
65
|
],
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@tanstack/query-core": "5.
|
|
67
|
+
"@tanstack/query-core": "5.104.0"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
+
"@analogjs/vite-plugin-angular": "^2.7.5",
|
|
70
71
|
"@angular/common": "^20.0.0",
|
|
71
72
|
"@angular/compiler": "^20.0.0",
|
|
72
73
|
"@angular/core": "^20.0.0",
|
|
73
74
|
"@angular/platform-browser": "^20.0.0",
|
|
75
|
+
"@oxc-project/runtime": "^0.151.0",
|
|
74
76
|
"@tanstack/query-test-utils": "0.0.0",
|
|
75
77
|
"@testing-library/angular": "^18.0.0",
|
|
76
78
|
"npm-run-all2": "^9.0.3",
|
|
77
79
|
"rxjs": "^7.8.2"
|
|
78
80
|
},
|
|
79
81
|
"optionalDependencies": {
|
|
80
|
-
"@tanstack/query-devtools": "5.
|
|
82
|
+
"@tanstack/query-devtools": "5.104.0"
|
|
81
83
|
},
|
|
82
84
|
"peerDependencies": {
|
|
83
85
|
"@angular/common": ">=16.0.0",
|
package/src/create-base-query.ts
CHANGED
|
@@ -165,6 +165,7 @@ export function createBaseQuery<
|
|
|
165
165
|
const originalRefetch = result.refetch
|
|
166
166
|
return {
|
|
167
167
|
...result,
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
168
169
|
refetch: ((...args: Parameters<typeof originalRefetch>) => {
|
|
169
170
|
observer.setOptions(defaultedOptionsSignal())
|
|
170
171
|
return originalRefetch(...args)
|
package/src/inject-queries.ts
CHANGED