@tanstack/angular-query-experimental 5.15.0 → 5.15.2
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/build/esm2022/create-base-query.mjs +37 -0
- package/build/esm2022/index.mjs +9 -9
- package/build/esm2022/infinite-query-options.mjs +4 -0
- package/build/esm2022/inject-is-fetching.mjs +25 -0
- package/build/esm2022/inject-is-mutating.mjs +25 -0
- package/build/esm2022/inject-mutation.mjs +30 -0
- package/build/esm2022/inject-queries.mjs +30 -0
- package/build/esm2022/inject-query-client.mjs +4 -0
- package/build/esm2022/inject-query.mjs +11 -0
- package/build/esm2022/providers.mjs +2 -2
- package/build/esm2022/query-options.mjs +4 -0
- package/build/esm2022/signal-proxy.mjs +40 -0
- package/build/fesm2022/tanstack-angular-query-experimental.mjs +16 -13
- package/build/fesm2022/tanstack-angular-query-experimental.mjs.map +1 -1
- package/build/index.d.ts +9 -9
- package/build/{injectQuery.d.ts → inject-query.d.ts} +1 -1
- package/build/signal-proxy.d.ts +14 -0
- package/package.json +1 -1
- package/src/{tests/injectIsFetching.test.ts → __tests__/inject-is-fetching.test.ts} +2 -2
- package/src/{tests/injectIsMutating.test.ts → __tests__/inject-is-mutating.test.ts} +2 -2
- package/src/{tests/injectMutation.test.ts → __tests__/inject-mutation.test.ts} +2 -2
- package/src/{tests/injectQuery.test.ts → __tests__/inject-query.test.ts} +1 -1
- package/src/__tests__/signal-proxy.test.ts +28 -0
- package/src/{createBaseQuery.ts → create-base-query.ts} +2 -2
- package/src/index.ts +9 -9
- package/src/{injectIsFetching.ts → inject-is-fetching.ts} +1 -1
- package/src/{injectIsMutating.ts → inject-is-mutating.ts} +1 -1
- package/src/{injectMutation.ts → inject-mutation.ts} +1 -1
- package/src/{injectQueries.ts → inject-queries.ts} +1 -1
- package/src/{injectQuery.ts → inject-query.ts} +3 -3
- package/src/providers.ts +1 -1
- package/src/signal-proxy.ts +48 -0
- package/build/esm2022/createBaseQuery.mjs +0 -37
- package/build/esm2022/infiniteQueryOptions.mjs +0 -4
- package/build/esm2022/injectIsFetching.mjs +0 -25
- package/build/esm2022/injectIsMutating.mjs +0 -25
- package/build/esm2022/injectMutation.mjs +0 -30
- package/build/esm2022/injectQueries.mjs +0 -30
- package/build/esm2022/injectQuery.mjs +0 -11
- package/build/esm2022/injectQueryClient.mjs +0 -4
- package/build/esm2022/query-proxy.mjs +0 -37
- package/build/esm2022/queryOptions.mjs +0 -4
- package/build/query-proxy.d.ts +0 -4
- package/src/query-proxy.ts +0 -51
- /package/build/{createBaseQuery.d.ts → create-base-query.d.ts} +0 -0
- /package/build/{infiniteQueryOptions.d.ts → infinite-query-options.d.ts} +0 -0
- /package/build/{injectIsFetching.d.ts → inject-is-fetching.d.ts} +0 -0
- /package/build/{injectIsMutating.d.ts → inject-is-mutating.d.ts} +0 -0
- /package/build/{injectMutation.d.ts → inject-mutation.d.ts} +0 -0
- /package/build/{injectQueries.d.ts → inject-queries.d.ts} +0 -0
- /package/build/{injectQueryClient.d.ts → inject-query-client.d.ts} +0 -0
- /package/build/{queryOptions.d.ts → query-options.d.ts} +0 -0
- /package/src/{tests → __tests__}/test-utils.ts +0 -0
- /package/src/{infiniteQueryOptions.ts → infinite-query-options.ts} +0 -0
- /package/src/{injectQueryClient.ts → inject-query-client.ts} +0 -0
- /package/src/{queryOptions.ts → query-options.ts} +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Signal } from '@angular/core';
|
|
2
|
+
type MapToSignals<T> = {
|
|
3
|
+
[K in keyof T]: T[K] extends Function ? T[K] : Signal<T[K]>;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Exposes fields of an object passed via an Angular `Signal` as `Computed` signals.
|
|
7
|
+
*
|
|
8
|
+
* Functions on the object are passed through as-is.
|
|
9
|
+
*
|
|
10
|
+
* @param inputSignal - `Signal` that must return an object.
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export declare function signalProxy<TInput extends Record<string | symbol, any>>(inputSignal: Signal<TInput>): MapToSignals<TInput>;
|
|
14
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { TestBed, fakeAsync, flush } from '@angular/core/testing'
|
|
2
2
|
import { QueryClient } from '@tanstack/query-core'
|
|
3
3
|
import { beforeEach, describe, expect } from 'vitest'
|
|
4
|
-
import { injectIsFetching } from '../
|
|
5
|
-
import { injectQuery } from '../
|
|
4
|
+
import { injectIsFetching } from '../inject-is-fetching'
|
|
5
|
+
import { injectQuery } from '../inject-query'
|
|
6
6
|
import { provideAngularQuery } from '../providers'
|
|
7
7
|
import { delayedFetcher } from './test-utils'
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { QueryClient } from '@tanstack/query-core'
|
|
2
2
|
import { beforeEach, describe } from 'vitest'
|
|
3
3
|
import { TestBed, fakeAsync, tick } from '@angular/core/testing'
|
|
4
|
-
import { injectIsMutating } from '../
|
|
5
|
-
import { injectMutation } from '../
|
|
4
|
+
import { injectIsMutating } from '../inject-is-mutating'
|
|
5
|
+
import { injectMutation } from '../inject-mutation'
|
|
6
6
|
import { provideAngularQuery } from '../providers'
|
|
7
7
|
import { successMutator } from './test-utils'
|
|
8
8
|
|
|
@@ -2,9 +2,9 @@ import { TestBed, fakeAsync, flush } from '@angular/core/testing'
|
|
|
2
2
|
import { QueryClient } from '@tanstack/query-core'
|
|
3
3
|
import { vi } from 'vitest'
|
|
4
4
|
import { expect } from 'vitest'
|
|
5
|
-
import { injectMutation } from '../
|
|
5
|
+
import { injectMutation } from '../inject-mutation'
|
|
6
6
|
import { provideAngularQuery } from '../providers'
|
|
7
|
-
import { QUERY_CLIENT } from '../
|
|
7
|
+
import { QUERY_CLIENT } from '../inject-query-client'
|
|
8
8
|
|
|
9
9
|
describe('injectMutation', () => {
|
|
10
10
|
let queryClient: QueryClient
|
|
@@ -2,7 +2,7 @@ import { computed, signal } from '@angular/core'
|
|
|
2
2
|
import { TestBed, fakeAsync, flush, tick } from '@angular/core/testing'
|
|
3
3
|
import { QueryClient } from '@tanstack/query-core'
|
|
4
4
|
import { expect, vi } from 'vitest'
|
|
5
|
-
import { injectQuery } from '../
|
|
5
|
+
import { injectQuery } from '../inject-query'
|
|
6
6
|
import { provideAngularQuery } from '../providers'
|
|
7
7
|
import {
|
|
8
8
|
delayedFetcher,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { signal } from '@angular/core'
|
|
2
|
+
import { isReactive } from '@angular/core/primitives/signals'
|
|
3
|
+
import { describe } from 'vitest'
|
|
4
|
+
import { signalProxy } from '../signal-proxy'
|
|
5
|
+
|
|
6
|
+
describe('signalProxy', () => {
|
|
7
|
+
const inputSignal = signal({ fn: () => 'bar', baz: 'qux' })
|
|
8
|
+
const proxy = signalProxy(inputSignal)
|
|
9
|
+
|
|
10
|
+
it('should have computed fields', () => {
|
|
11
|
+
expect(proxy.baz()).toEqual('qux')
|
|
12
|
+
expect(isReactive(proxy.baz)).toBe(true)
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
it('should pass through functions as-is', () => {
|
|
16
|
+
expect(proxy.fn()).toEqual('bar')
|
|
17
|
+
expect(isReactive(proxy.fn)).toBe(false)
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it('supports "in" operator', () => {
|
|
21
|
+
expect('baz' in proxy).toBe(true)
|
|
22
|
+
expect('foo' in proxy).toBe(false)
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('supports "Object.keys"', () => {
|
|
26
|
+
expect(Object.keys(proxy)).toEqual(['fn', 'baz'])
|
|
27
|
+
})
|
|
28
|
+
})
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
inject,
|
|
7
7
|
signal,
|
|
8
8
|
} from '@angular/core'
|
|
9
|
-
import {
|
|
9
|
+
import { signalProxy } from './signal-proxy'
|
|
10
10
|
import type { QueryClient, QueryKey, QueryObserver } from '@tanstack/query-core'
|
|
11
11
|
import type { CreateBaseQueryOptions, CreateBaseQueryResult } from './types'
|
|
12
12
|
|
|
@@ -81,5 +81,5 @@ export function createBaseQuery<
|
|
|
81
81
|
const unsubscribe = observer.subscribe(resultSignal.set)
|
|
82
82
|
destroyRef.onDestroy(unsubscribe)
|
|
83
83
|
|
|
84
|
-
return
|
|
84
|
+
return signalProxy(resultSignal)
|
|
85
85
|
}
|
package/src/index.ts
CHANGED
|
@@ -8,19 +8,19 @@ export * from './types'
|
|
|
8
8
|
export type {
|
|
9
9
|
DefinedInitialDataOptions,
|
|
10
10
|
UndefinedInitialDataOptions,
|
|
11
|
-
} from './
|
|
12
|
-
export { queryOptions } from './
|
|
11
|
+
} from './query-options'
|
|
12
|
+
export { queryOptions } from './query-options'
|
|
13
13
|
|
|
14
|
-
export { infiniteQueryOptions } from './
|
|
14
|
+
export { infiniteQueryOptions } from './infinite-query-options'
|
|
15
15
|
|
|
16
|
-
export * from './
|
|
17
|
-
export * from './
|
|
18
|
-
export * from './
|
|
19
|
-
export * from './
|
|
20
|
-
export * from './
|
|
16
|
+
export * from './inject-is-fetching'
|
|
17
|
+
export * from './inject-is-mutating'
|
|
18
|
+
export * from './inject-mutation'
|
|
19
|
+
export * from './inject-queries'
|
|
20
|
+
export * from './inject-query'
|
|
21
21
|
export {
|
|
22
22
|
injectQueryClient,
|
|
23
23
|
provideQueryClient,
|
|
24
24
|
QUERY_CLIENT,
|
|
25
|
-
} from './
|
|
25
|
+
} from './inject-query-client'
|
|
26
26
|
export { provideAngularQuery } from './providers'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DestroyRef, inject, signal } from '@angular/core'
|
|
2
2
|
import { type QueryFilters, notifyManager } from '@tanstack/query-core'
|
|
3
3
|
import { assertInjector } from 'ngxtension/assert-injector'
|
|
4
|
-
import { injectQueryClient } from './
|
|
4
|
+
import { injectQueryClient } from './inject-query-client'
|
|
5
5
|
import type { Injector, Signal } from '@angular/core'
|
|
6
6
|
|
|
7
7
|
export function injectIsFetching(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DestroyRef, inject, signal } from '@angular/core'
|
|
2
2
|
import { type MutationFilters, notifyManager } from '@tanstack/query-core'
|
|
3
3
|
import { assertInjector } from 'ngxtension/assert-injector'
|
|
4
|
-
import { injectQueryClient } from './
|
|
4
|
+
import { injectQueryClient } from './inject-query-client'
|
|
5
5
|
import type { Injector, Signal } from '@angular/core'
|
|
6
6
|
|
|
7
7
|
export function injectIsMutating(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DestroyRef, computed, effect, inject, signal } from '@angular/core'
|
|
2
2
|
import { MutationObserver, notifyManager } from '@tanstack/query-core'
|
|
3
3
|
import { assertInjector } from 'ngxtension/assert-injector'
|
|
4
|
-
import { injectQueryClient } from './
|
|
4
|
+
import { injectQueryClient } from './inject-query-client'
|
|
5
5
|
import type { DefaultError, QueryClient } from '@tanstack/query-core'
|
|
6
6
|
import type { Injector } from '@angular/core'
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { QueriesObserver, notifyManager } from '@tanstack/query-core'
|
|
2
2
|
import { DestroyRef, computed, effect, inject, signal } from '@angular/core'
|
|
3
3
|
import { assertInjector } from 'ngxtension/assert-injector'
|
|
4
|
-
import { injectQueryClient } from './
|
|
4
|
+
import { injectQueryClient } from './inject-query-client'
|
|
5
5
|
import type { Injector, Signal } from '@angular/core'
|
|
6
6
|
import type {
|
|
7
7
|
DefaultError,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { QueryObserver } from '@tanstack/query-core'
|
|
2
2
|
import { assertInjector } from 'ngxtension/assert-injector'
|
|
3
|
-
import { injectQueryClient } from './
|
|
4
|
-
import { createBaseQuery } from './
|
|
3
|
+
import { injectQueryClient } from './inject-query-client'
|
|
4
|
+
import { createBaseQuery } from './create-base-query'
|
|
5
5
|
import type { DefaultError, QueryClient, QueryKey } from '@tanstack/query-core'
|
|
6
6
|
import type { Injector } from '@angular/core'
|
|
7
7
|
import type {
|
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
import type {
|
|
13
13
|
DefinedInitialDataOptions,
|
|
14
14
|
UndefinedInitialDataOptions,
|
|
15
|
-
} from './
|
|
15
|
+
} from './query-options'
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Create a Query.
|
package/src/providers.ts
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
inject,
|
|
5
5
|
makeEnvironmentProviders,
|
|
6
6
|
} from '@angular/core'
|
|
7
|
-
import { provideQueryClient } from './
|
|
7
|
+
import { provideQueryClient } from './inject-query-client'
|
|
8
8
|
import type { EnvironmentProviders } from '@angular/core'
|
|
9
9
|
import type { QueryClient } from '@tanstack/query-core'
|
|
10
10
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { computed, untracked } from '@angular/core'
|
|
2
|
+
import type { Signal } from '@angular/core'
|
|
3
|
+
|
|
4
|
+
type MapToSignals<T> = {
|
|
5
|
+
[K in keyof T]: T[K] extends Function ? T[K] : Signal<T[K]>
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Exposes fields of an object passed via an Angular `Signal` as `Computed` signals.
|
|
10
|
+
*
|
|
11
|
+
* Functions on the object are passed through as-is.
|
|
12
|
+
*
|
|
13
|
+
* @param inputSignal - `Signal` that must return an object.
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
export function signalProxy<TInput extends Record<string | symbol, any>>(
|
|
17
|
+
inputSignal: Signal<TInput>,
|
|
18
|
+
) {
|
|
19
|
+
const internalState = {} as MapToSignals<TInput>
|
|
20
|
+
|
|
21
|
+
return new Proxy<MapToSignals<TInput>>(internalState, {
|
|
22
|
+
get(target, prop) {
|
|
23
|
+
// first check if we have it in our internal state and return it
|
|
24
|
+
const computedField = target[prop]
|
|
25
|
+
if (computedField) return computedField
|
|
26
|
+
|
|
27
|
+
// then, check if it's a function on the resultState and return it
|
|
28
|
+
const targetField = untracked(inputSignal)[prop]
|
|
29
|
+
if (typeof targetField === 'function') return targetField
|
|
30
|
+
|
|
31
|
+
// finally, create a computed field, store it and return it
|
|
32
|
+
// @ts-ignore
|
|
33
|
+
return (target[prop] = computed(() => inputSignal()[prop]))
|
|
34
|
+
},
|
|
35
|
+
has(_, prop) {
|
|
36
|
+
return !!untracked(inputSignal)[prop]
|
|
37
|
+
},
|
|
38
|
+
ownKeys() {
|
|
39
|
+
return Reflect.ownKeys(untracked(inputSignal))
|
|
40
|
+
},
|
|
41
|
+
getOwnPropertyDescriptor() {
|
|
42
|
+
return {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
})
|
|
48
|
+
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, assertInInjectionContext, computed, effect, inject, signal, } from '@angular/core';
|
|
2
|
-
import { createResultStateSignalProxy } from './query-proxy';
|
|
3
|
-
/**
|
|
4
|
-
* Base implementation for `injectQuery` and `injectInfiniteQuery`.
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
export function createBaseQuery(options, Observer, queryClient) {
|
|
8
|
-
assertInInjectionContext(createBaseQuery);
|
|
9
|
-
const destroyRef = inject(DestroyRef);
|
|
10
|
-
/**
|
|
11
|
-
* Signal that has the default options from query client applied
|
|
12
|
-
* computed() is used so signals can be inserted into the options
|
|
13
|
-
* making it reactive. Wrapping options in a function ensures embedded expressions
|
|
14
|
-
* are preserved and can keep being applied after signal changes
|
|
15
|
-
*/
|
|
16
|
-
const defaultedOptionsSignal = computed(() => {
|
|
17
|
-
const defaultedOptions = queryClient.defaultQueryOptions(options(queryClient));
|
|
18
|
-
defaultedOptions._optimisticResults = 'optimistic';
|
|
19
|
-
return defaultedOptions;
|
|
20
|
-
});
|
|
21
|
-
const observer = new Observer(queryClient, defaultedOptionsSignal());
|
|
22
|
-
const resultSignal = signal(observer.getOptimisticResult(queryClient.defaultQueryOptions(defaultedOptionsSignal())));
|
|
23
|
-
effect(() => {
|
|
24
|
-
// Do not notify on updates because of changes in the options because
|
|
25
|
-
// these changes should already be reflected in the optimistic result.
|
|
26
|
-
const defaultedOptions = defaultedOptionsSignal();
|
|
27
|
-
observer.setOptions(defaultedOptions, {
|
|
28
|
-
listeners: false,
|
|
29
|
-
});
|
|
30
|
-
resultSignal.set(observer.getOptimisticResult(defaultedOptions));
|
|
31
|
-
}, { allowSignalWrites: true });
|
|
32
|
-
// observer.trackResult is not used as this optimization is not needed for Angular
|
|
33
|
-
const unsubscribe = observer.subscribe(resultSignal.set);
|
|
34
|
-
destroyRef.onDestroy(unsubscribe);
|
|
35
|
-
return createResultStateSignalProxy(resultSignal);
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQmFzZVF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NyZWF0ZUJhc2VRdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSTVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxlQUFlLENBTzdCLE9BUUMsRUFDRCxRQUE4QixFQUM5QixXQUF3QjtJQUV4Qix3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUN6QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7SUFFckM7Ozs7O09BS0c7SUFDSCxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDM0MsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQ3RELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FDckIsQ0FBQTtRQUNELGdCQUFnQixDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQTtRQUNsRCxPQUFPLGdCQUFnQixDQUFBO0lBQ3pCLENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBTTNCLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUE7SUFFeEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUN6QixRQUFRLENBQUMsbUJBQW1CLENBQzFCLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQzFELENBQ0YsQ0FBQTtJQUVELE1BQU0sQ0FDSixHQUFHLEVBQUU7UUFDSCxxRUFBcUU7UUFDckUsc0VBQXNFO1FBQ3RFLE1BQU0sZ0JBQWdCLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQTtRQUNqRCxRQUFRLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BDLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQTtRQUNGLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQTtJQUNsRSxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDNUIsQ0FBQTtJQUVELGtGQUFrRjtJQUNsRixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN4RCxVQUFVLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBRWpDLE9BQU8sNEJBQTRCLENBQWdCLFlBQVksQ0FBQyxDQUFBO0FBQ2xFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgY3JlYXRlUmVzdWx0U3RhdGVTaWduYWxQcm94eSB9IGZyb20gJy4vcXVlcnktcHJveHknXG5pbXBvcnQgdHlwZSB7IFF1ZXJ5Q2xpZW50LCBRdWVyeUtleSwgUXVlcnlPYnNlcnZlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVCYXNlUXVlcnlPcHRpb25zLCBDcmVhdGVCYXNlUXVlcnlSZXN1bHQgfSBmcm9tICcuL3R5cGVzJ1xuXG4vKipcbiAqIEJhc2UgaW1wbGVtZW50YXRpb24gZm9yIGBpbmplY3RRdWVyeWAgYW5kIGBpbmplY3RJbmZpbml0ZVF1ZXJ5YC5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFzZVF1ZXJ5PFxuICBUUXVlcnlGbkRhdGEsXG4gIFRFcnJvcixcbiAgVERhdGEsXG4gIFRRdWVyeURhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5LFxuPihcbiAgb3B0aW9uczogKFxuICAgIGNsaWVudDogUXVlcnlDbGllbnQsXG4gICkgPT4gQ3JlYXRlQmFzZVF1ZXJ5T3B0aW9uczxcbiAgICBUUXVlcnlGbkRhdGEsXG4gICAgVEVycm9yLFxuICAgIFREYXRhLFxuICAgIFRRdWVyeURhdGEsXG4gICAgVFF1ZXJ5S2V5XG4gID4sXG4gIE9ic2VydmVyOiB0eXBlb2YgUXVlcnlPYnNlcnZlcixcbiAgcXVlcnlDbGllbnQ6IFF1ZXJ5Q2xpZW50LFxuKTogQ3JlYXRlQmFzZVF1ZXJ5UmVzdWx0PFREYXRhLCBURXJyb3I+IHtcbiAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGNyZWF0ZUJhc2VRdWVyeSlcbiAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKVxuXG4gIC8qKlxuICAgKiBTaWduYWwgdGhhdCBoYXMgdGhlIGRlZmF1bHQgb3B0aW9ucyBmcm9tIHF1ZXJ5IGNsaWVudCBhcHBsaWVkXG4gICAqIGNvbXB1dGVkKCkgaXMgdXNlZCBzbyBzaWduYWxzIGNhbiBiZSBpbnNlcnRlZCBpbnRvIHRoZSBvcHRpb25zXG4gICAqIG1ha2luZyBpdCByZWFjdGl2ZS4gV3JhcHBpbmcgb3B0aW9ucyBpbiBhIGZ1bmN0aW9uIGVuc3VyZXMgZW1iZWRkZWQgZXhwcmVzc2lvbnNcbiAgICogYXJlIHByZXNlcnZlZCBhbmQgY2FuIGtlZXAgYmVpbmcgYXBwbGllZCBhZnRlciBzaWduYWwgY2hhbmdlc1xuICAgKi9cbiAgY29uc3QgZGVmYXVsdGVkT3B0aW9uc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0ZWRPcHRpb25zID0gcXVlcnlDbGllbnQuZGVmYXVsdFF1ZXJ5T3B0aW9ucyhcbiAgICAgIG9wdGlvbnMocXVlcnlDbGllbnQpLFxuICAgIClcbiAgICBkZWZhdWx0ZWRPcHRpb25zLl9vcHRpbWlzdGljUmVzdWx0cyA9ICdvcHRpbWlzdGljJ1xuICAgIHJldHVybiBkZWZhdWx0ZWRPcHRpb25zXG4gIH0pXG5cbiAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgT2JzZXJ2ZXI8XG4gICAgVFF1ZXJ5Rm5EYXRhLFxuICAgIFRFcnJvcixcbiAgICBURGF0YSxcbiAgICBUUXVlcnlEYXRhLFxuICAgIFRRdWVyeUtleVxuICA+KHF1ZXJ5Q2xpZW50LCBkZWZhdWx0ZWRPcHRpb25zU2lnbmFsKCkpXG5cbiAgY29uc3QgcmVzdWx0U2lnbmFsID0gc2lnbmFsKFxuICAgIG9ic2VydmVyLmdldE9wdGltaXN0aWNSZXN1bHQoXG4gICAgICBxdWVyeUNsaWVudC5kZWZhdWx0UXVlcnlPcHRpb25zKGRlZmF1bHRlZE9wdGlvbnNTaWduYWwoKSksXG4gICAgKSxcbiAgKVxuXG4gIGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICAvLyBEbyBub3Qgbm90aWZ5IG9uIHVwZGF0ZXMgYmVjYXVzZSBvZiBjaGFuZ2VzIGluIHRoZSBvcHRpb25zIGJlY2F1c2VcbiAgICAgIC8vIHRoZXNlIGNoYW5nZXMgc2hvdWxkIGFscmVhZHkgYmUgcmVmbGVjdGVkIGluIHRoZSBvcHRpbWlzdGljIHJlc3VsdC5cbiAgICAgIGNvbnN0IGRlZmF1bHRlZE9wdGlvbnMgPSBkZWZhdWx0ZWRPcHRpb25zU2lnbmFsKClcbiAgICAgIG9ic2VydmVyLnNldE9wdGlvbnMoZGVmYXVsdGVkT3B0aW9ucywge1xuICAgICAgICBsaXN0ZW5lcnM6IGZhbHNlLFxuICAgICAgfSlcbiAgICAgIHJlc3VsdFNpZ25hbC5zZXQob2JzZXJ2ZXIuZ2V0T3B0aW1pc3RpY1Jlc3VsdChkZWZhdWx0ZWRPcHRpb25zKSlcbiAgICB9LFxuICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgKVxuXG4gIC8vIG9ic2VydmVyLnRyYWNrUmVzdWx0IGlzIG5vdCB1c2VkIGFzIHRoaXMgb3B0aW1pemF0aW9uIGlzIG5vdCBuZWVkZWQgZm9yIEFuZ3VsYXJcbiAgY29uc3QgdW5zdWJzY3JpYmUgPSBvYnNlcnZlci5zdWJzY3JpYmUocmVzdWx0U2lnbmFsLnNldClcbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3kodW5zdWJzY3JpYmUpXG5cbiAgcmV0dXJuIGNyZWF0ZVJlc3VsdFN0YXRlU2lnbmFsUHJveHk8VERhdGEsIFRFcnJvcj4ocmVzdWx0U2lnbmFsKVxufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export function infiniteQueryOptions(options) {
|
|
2
|
-
return options;
|
|
3
|
-
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdGVRdWVyeU9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5maW5pdGVRdWVyeU9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLG9CQUFvQixDQU9sQyxPQU9DO0lBU0QsT0FBTyxPQUFPLENBQUE7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGVmYXVsdEVycm9yLCBJbmZpbml0ZURhdGEsIFF1ZXJ5S2V5IH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgdHlwZSB7IENyZWF0ZUluZmluaXRlUXVlcnlPcHRpb25zIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGZ1bmN0aW9uIGluZmluaXRlUXVlcnlPcHRpb25zPFxuICBUUXVlcnlGbkRhdGEsXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVERhdGEgPSBJbmZpbml0ZURhdGE8VFF1ZXJ5Rm5EYXRhPixcbiAgVFF1ZXJ5S2V5IGV4dGVuZHMgUXVlcnlLZXkgPSBRdWVyeUtleSxcbiAgVFBhZ2VQYXJhbSA9IHVua25vd24sXG4+KFxuICBvcHRpb25zOiBDcmVhdGVJbmZpbml0ZVF1ZXJ5T3B0aW9uczxcbiAgICBUUXVlcnlGbkRhdGEsXG4gICAgVEVycm9yLFxuICAgIFREYXRhLFxuICAgIFRRdWVyeUZuRGF0YSxcbiAgICBUUXVlcnlLZXksXG4gICAgVFBhZ2VQYXJhbVxuICA+LFxuKTogQ3JlYXRlSW5maW5pdGVRdWVyeU9wdGlvbnM8XG4gIFRRdWVyeUZuRGF0YSxcbiAgVEVycm9yLFxuICBURGF0YSxcbiAgVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXksXG4gIFRQYWdlUGFyYW1cbj4ge1xuICByZXR1cm4gb3B0aW9uc1xufVxuIl19
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, inject, signal } from '@angular/core';
|
|
2
|
-
import { notifyManager } from '@tanstack/query-core';
|
|
3
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
|
-
import { injectQueryClient } from './injectQueryClient';
|
|
5
|
-
export function injectIsFetching(filters, injector) {
|
|
6
|
-
return assertInjector(injectIsFetching, injector, () => {
|
|
7
|
-
const queryClient = injectQueryClient();
|
|
8
|
-
const destroyRef = inject(DestroyRef);
|
|
9
|
-
const cache = queryClient.getQueryCache();
|
|
10
|
-
// isFetching is the prev value initialized on mount *
|
|
11
|
-
let isFetching = queryClient.isFetching(filters);
|
|
12
|
-
const result = signal(isFetching);
|
|
13
|
-
const unsubscribe = cache.subscribe(notifyManager.batchCalls(() => {
|
|
14
|
-
const newIsFetching = queryClient.isFetching(filters);
|
|
15
|
-
if (isFetching !== newIsFetching) {
|
|
16
|
-
// * and update with each change
|
|
17
|
-
isFetching = newIsFetching;
|
|
18
|
-
result.set(isFetching);
|
|
19
|
-
}
|
|
20
|
-
}));
|
|
21
|
-
destroyRef.onDestroy(unsubscribe);
|
|
22
|
-
return result;
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0SXNGZXRjaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmplY3RJc0ZldGNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUd2RCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQXNCLEVBQ3RCLFFBQW1CO0lBRW5CLE9BQU8sY0FBYyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDckQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQTtRQUN2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFckMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3pDLHNEQUFzRDtRQUN0RCxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRWhELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVqQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUNqQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1lBQ3JELElBQUksVUFBVSxLQUFLLGFBQWEsRUFBRTtnQkFDaEMsZ0NBQWdDO2dCQUNoQyxVQUFVLEdBQUcsYUFBYSxDQUFBO2dCQUMxQixNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUVELFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFakMsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyB0eXBlIFF1ZXJ5RmlsdGVycywgbm90aWZ5TWFuYWdlciB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3RvcidcbmltcG9ydCB7IGluamVjdFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi9pbmplY3RRdWVyeUNsaWVudCdcbmltcG9ydCB0eXBlIHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc0ZldGNoaW5nKFxuICBmaWx0ZXJzPzogUXVlcnlGaWx0ZXJzLFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKTogU2lnbmFsPG51bWJlcj4ge1xuICByZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0SXNGZXRjaGluZywgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpXG5cbiAgICBjb25zdCBjYWNoZSA9IHF1ZXJ5Q2xpZW50LmdldFF1ZXJ5Q2FjaGUoKVxuICAgIC8vIGlzRmV0Y2hpbmcgaXMgdGhlIHByZXYgdmFsdWUgaW5pdGlhbGl6ZWQgb24gbW91bnQgKlxuICAgIGxldCBpc0ZldGNoaW5nID0gcXVlcnlDbGllbnQuaXNGZXRjaGluZyhmaWx0ZXJzKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gc2lnbmFsKGlzRmV0Y2hpbmcpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IGNhY2hlLnN1YnNjcmliZShcbiAgICAgIG5vdGlmeU1hbmFnZXIuYmF0Y2hDYWxscygoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0lzRmV0Y2hpbmcgPSBxdWVyeUNsaWVudC5pc0ZldGNoaW5nKGZpbHRlcnMpXG4gICAgICAgIGlmIChpc0ZldGNoaW5nICE9PSBuZXdJc0ZldGNoaW5nKSB7XG4gICAgICAgICAgLy8gKiBhbmQgdXBkYXRlIHdpdGggZWFjaCBjaGFuZ2VcbiAgICAgICAgICBpc0ZldGNoaW5nID0gbmV3SXNGZXRjaGluZ1xuICAgICAgICAgIHJlc3VsdC5zZXQoaXNGZXRjaGluZylcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3kodW5zdWJzY3JpYmUpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pXG59XG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, inject, signal } from '@angular/core';
|
|
2
|
-
import { notifyManager } from '@tanstack/query-core';
|
|
3
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
|
-
import { injectQueryClient } from './injectQueryClient';
|
|
5
|
-
export function injectIsMutating(filters, injector) {
|
|
6
|
-
return assertInjector(injectIsMutating, injector, () => {
|
|
7
|
-
const queryClient = injectQueryClient();
|
|
8
|
-
const destroyRef = inject(DestroyRef);
|
|
9
|
-
const cache = queryClient.getMutationCache();
|
|
10
|
-
// isMutating is the prev value initialized on mount *
|
|
11
|
-
let isMutating = queryClient.isMutating(filters);
|
|
12
|
-
const result = signal(isMutating);
|
|
13
|
-
const unsubscribe = cache.subscribe(notifyManager.batchCalls(() => {
|
|
14
|
-
const newIsMutating = queryClient.isMutating(filters);
|
|
15
|
-
if (isMutating !== newIsMutating) {
|
|
16
|
-
// * and update with each change
|
|
17
|
-
isMutating = newIsMutating;
|
|
18
|
-
result.set(isMutating);
|
|
19
|
-
}
|
|
20
|
-
}));
|
|
21
|
-
destroyRef.onDestroy(unsubscribe);
|
|
22
|
-
return result;
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0SXNNdXRhdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmplY3RJc011dGF0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRCxPQUFPLEVBQXdCLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUd2RCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQXlCLEVBQ3pCLFFBQW1CO0lBRW5CLE9BQU8sY0FBYyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDckQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQTtRQUN2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFFckMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDNUMsc0RBQXNEO1FBQ3RELElBQUksVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRWpDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQ2pDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzVCLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDckQsSUFBSSxVQUFVLEtBQUssYUFBYSxFQUFFO2dCQUNoQyxnQ0FBZ0M7Z0JBQ2hDLFVBQVUsR0FBRyxhQUFhLENBQUE7Z0JBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVqQyxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IHR5cGUgTXV0YXRpb25GaWx0ZXJzLCBub3RpZnlNYW5hZ2VyIH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJ1xuaW1wb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQgfSBmcm9tICcuL2luamVjdFF1ZXJ5Q2xpZW50J1xuaW1wb3J0IHR5cGUgeyBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdElzTXV0YXRpbmcoXG4gIGZpbHRlcnM/OiBNdXRhdGlvbkZpbHRlcnMsXG4gIGluamVjdG9yPzogSW5qZWN0b3IsXG4pOiBTaWduYWw8bnVtYmVyPiB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RJc011dGF0aW5nLCBpbmplY3RvciwgKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gaW5qZWN0UXVlcnlDbGllbnQoKVxuICAgIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZilcblxuICAgIGNvbnN0IGNhY2hlID0gcXVlcnlDbGllbnQuZ2V0TXV0YXRpb25DYWNoZSgpXG4gICAgLy8gaXNNdXRhdGluZyBpcyB0aGUgcHJldiB2YWx1ZSBpbml0aWFsaXplZCBvbiBtb3VudCAqXG4gICAgbGV0IGlzTXV0YXRpbmcgPSBxdWVyeUNsaWVudC5pc011dGF0aW5nKGZpbHRlcnMpXG5cbiAgICBjb25zdCByZXN1bHQgPSBzaWduYWwoaXNNdXRhdGluZylcblxuICAgIGNvbnN0IHVuc3Vic2NyaWJlID0gY2FjaGUuc3Vic2NyaWJlKFxuICAgICAgbm90aWZ5TWFuYWdlci5iYXRjaENhbGxzKCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV3SXNNdXRhdGluZyA9IHF1ZXJ5Q2xpZW50LmlzTXV0YXRpbmcoZmlsdGVycylcbiAgICAgICAgaWYgKGlzTXV0YXRpbmcgIT09IG5ld0lzTXV0YXRpbmcpIHtcbiAgICAgICAgICAvLyAqIGFuZCB1cGRhdGUgd2l0aCBlYWNoIGNoYW5nZVxuICAgICAgICAgIGlzTXV0YXRpbmcgPSBuZXdJc011dGF0aW5nXG4gICAgICAgICAgcmVzdWx0LnNldChpc011dGF0aW5nKVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG5cbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSh1bnN1YnNjcmliZSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSlcbn1cbiJdfQ==
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, computed, effect, inject, signal } from '@angular/core';
|
|
2
|
-
import { MutationObserver, notifyManager } from '@tanstack/query-core';
|
|
3
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
|
-
import { injectQueryClient } from './injectQueryClient';
|
|
5
|
-
export function injectMutation(options, injector) {
|
|
6
|
-
return assertInjector(injectMutation, injector, () => {
|
|
7
|
-
const queryClient = injectQueryClient();
|
|
8
|
-
const destroyRef = inject(DestroyRef);
|
|
9
|
-
const observer = new MutationObserver(queryClient, options(queryClient));
|
|
10
|
-
const mutate = (variables, mutateOptions) => {
|
|
11
|
-
observer.mutate(variables, mutateOptions).catch(noop);
|
|
12
|
-
};
|
|
13
|
-
effect(() => {
|
|
14
|
-
observer.setOptions(options(queryClient));
|
|
15
|
-
});
|
|
16
|
-
const result = signal(observer.getCurrentResult());
|
|
17
|
-
const unsubscribe = observer.subscribe(notifyManager.batchCalls((val) => {
|
|
18
|
-
result.set(val);
|
|
19
|
-
}));
|
|
20
|
-
destroyRef.onDestroy(unsubscribe);
|
|
21
|
-
return computed(() => ({
|
|
22
|
-
...result(),
|
|
23
|
-
mutate,
|
|
24
|
-
mutateAsync: result().mutate,
|
|
25
|
-
}));
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
29
|
-
function noop() { }
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0TXV0YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5qZWN0TXV0YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQVV2RCxNQUFNLFVBQVUsY0FBYyxDQU01QixPQUUrRCxFQUMvRCxRQUFtQjtJQUVuQixPQUFPLGNBQWMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNuRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUVyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUNuQyxXQUFXLEVBQ1gsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUNyQixDQUFBO1FBQ0QsTUFBTSxNQUFNLEdBQThELENBQ3hFLFNBQVMsRUFDVCxhQUFhLEVBQ2IsRUFBRTtZQUNGLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUE7UUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtRQUMzQyxDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO1FBRWxELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQ3BDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMvQixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2pCLENBQUMsQ0FBQyxDQUNILENBQUE7UUFFRCxVQUFVLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRWpDLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckIsR0FBRyxNQUFNLEVBQUU7WUFDWCxNQUFNO1lBQ04sV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDLE1BQU07U0FDN0IsQ0FBQyxDQUFDLENBQUE7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxnRUFBZ0U7QUFDaEUsU0FBUyxJQUFJLEtBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE11dGF0aW9uT2JzZXJ2ZXIsIG5vdGlmeU1hbmFnZXIgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InXG5pbXBvcnQgeyBpbmplY3RRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0UXVlcnlDbGllbnQnXG5pbXBvcnQgdHlwZSB7IERlZmF1bHRFcnJvciwgUXVlcnlDbGllbnQgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB0eXBlIHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgdHlwZSB7XG4gIENyZWF0ZU11dGF0ZUZ1bmN0aW9uLFxuICBDcmVhdGVNdXRhdGlvbk9wdGlvbnMsXG4gIENyZWF0ZU11dGF0aW9uUmVzdWx0LFxufSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TXV0YXRpb248XG4gIFREYXRhID0gdW5rbm93bixcbiAgVEVycm9yID0gRGVmYXVsdEVycm9yLFxuICBUVmFyaWFibGVzID0gdm9pZCxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPihcbiAgb3B0aW9uczogKFxuICAgIGNsaWVudDogUXVlcnlDbGllbnQsXG4gICkgPT4gQ3JlYXRlTXV0YXRpb25PcHRpb25zPFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PixcbiAgaW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IENyZWF0ZU11dGF0aW9uUmVzdWx0PFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PiB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RNdXRhdGlvbiwgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpXG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyPFREYXRhLCBURXJyb3IsIFRWYXJpYWJsZXMsIFRDb250ZXh0PihcbiAgICAgIHF1ZXJ5Q2xpZW50LFxuICAgICAgb3B0aW9ucyhxdWVyeUNsaWVudCksXG4gICAgKVxuICAgIGNvbnN0IG11dGF0ZTogQ3JlYXRlTXV0YXRlRnVuY3Rpb248VERhdGEsIFRFcnJvciwgVFZhcmlhYmxlcywgVENvbnRleHQ+ID0gKFxuICAgICAgdmFyaWFibGVzLFxuICAgICAgbXV0YXRlT3B0aW9ucyxcbiAgICApID0+IHtcbiAgICAgIG9ic2VydmVyLm11dGF0ZSh2YXJpYWJsZXMsIG11dGF0ZU9wdGlvbnMpLmNhdGNoKG5vb3ApXG4gICAgfVxuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIG9ic2VydmVyLnNldE9wdGlvbnMob3B0aW9ucyhxdWVyeUNsaWVudCkpXG4gICAgfSlcblxuICAgIGNvbnN0IHJlc3VsdCA9IHNpZ25hbChvYnNlcnZlci5nZXRDdXJyZW50UmVzdWx0KCkpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IG9ic2VydmVyLnN1YnNjcmliZShcbiAgICAgIG5vdGlmeU1hbmFnZXIuYmF0Y2hDYWxscygodmFsKSA9PiB7XG4gICAgICAgIHJlc3VsdC5zZXQodmFsKVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3kodW5zdWJzY3JpYmUpXG5cbiAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgIC4uLnJlc3VsdCgpLFxuICAgICAgbXV0YXRlLFxuICAgICAgbXV0YXRlQXN5bmM6IHJlc3VsdCgpLm11dGF0ZSxcbiAgICB9KSlcbiAgfSlcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuZnVuY3Rpb24gbm9vcCgpIHt9XG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { QueriesObserver, notifyManager } from '@tanstack/query-core';
|
|
2
|
-
import { DestroyRef, computed, effect, inject, signal } from '@angular/core';
|
|
3
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
|
-
import { injectQueryClient } from './injectQueryClient';
|
|
5
|
-
export function injectQueries({ queries, ...options }, injector) {
|
|
6
|
-
return assertInjector(injectQueries, injector, () => {
|
|
7
|
-
const queryClient = injectQueryClient();
|
|
8
|
-
const destroyRef = inject(DestroyRef);
|
|
9
|
-
const defaultedQueries = computed(() => {
|
|
10
|
-
return queries().map((opts) => {
|
|
11
|
-
const defaultedOptions = queryClient.defaultQueryOptions(opts);
|
|
12
|
-
// Make sure the results are already in fetching state before subscribing or updating options
|
|
13
|
-
defaultedOptions._optimisticResults = 'optimistic';
|
|
14
|
-
return defaultedOptions;
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
const observer = new QueriesObserver(queryClient, defaultedQueries(), options);
|
|
18
|
-
// Do not notify on updates because of changes in the options because
|
|
19
|
-
// these changes should already be reflected in the optimistic result.
|
|
20
|
-
effect(() => {
|
|
21
|
-
observer.setQueries(defaultedQueries(), options, { listeners: false });
|
|
22
|
-
});
|
|
23
|
-
const [, getCombinedResult] = observer.getOptimisticResult(defaultedQueries());
|
|
24
|
-
const result = signal(getCombinedResult());
|
|
25
|
-
const unsubscribe = observer.subscribe(notifyManager.batchCalls(result.set));
|
|
26
|
-
destroyRef.onDestroy(unsubscribe);
|
|
27
|
-
return result;
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmplY3RRdWVyaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBZ012RCxNQUFNLFVBQVUsYUFBYSxDQUkzQixFQUNFLE9BQU8sRUFDUCxHQUFHLE9BQU8sRUFJWCxFQUNELFFBQW1CO0lBRW5CLE9BQU8sY0FBYyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2xELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUE7UUFDdkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxPQUFPLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM1QixNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDOUQsNkZBQTZGO2dCQUM3RixnQkFBZ0IsQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUE7Z0JBRWxELE9BQU8sZ0JBQWdCLENBQUE7WUFDekIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUNsQyxXQUFXLEVBQ1gsZ0JBQWdCLEVBQUUsRUFDbEIsT0FBa0QsQ0FDbkQsQ0FBQTtRQUVELHFFQUFxRTtRQUNyRSxzRUFBc0U7UUFDdEUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLFFBQVEsQ0FBQyxVQUFVLENBQ2pCLGdCQUFnQixFQUFFLEVBQ2xCLE9BQWtELEVBQ2xELEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUNyQixDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixNQUFNLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxHQUN6QixRQUFRLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFBO1FBRWxELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBUyxDQUFDLENBQUE7UUFFakQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzVFLFVBQVUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFakMsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyaWVzT2JzZXJ2ZXIsIG5vdGlmeU1hbmFnZXIgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcbmltcG9ydCB7IERlc3Ryb3lSZWYsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InXG5pbXBvcnQgeyBpbmplY3RRdWVyeUNsaWVudCB9IGZyb20gJy4vaW5qZWN0UXVlcnlDbGllbnQnXG5pbXBvcnQgdHlwZSB7IEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHR5cGUge1xuICBEZWZhdWx0RXJyb3IsXG4gIFF1ZXJpZXNPYnNlcnZlck9wdGlvbnMsXG4gIFF1ZXJpZXNQbGFjZWhvbGRlckRhdGFGdW5jdGlvbixcbiAgUXVlcnlGdW5jdGlvbixcbiAgUXVlcnlLZXksXG4gIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zLFxuICBRdWVyeU9ic2VydmVyUmVzdWx0LFxuICBUaHJvd09uRXJyb3IsXG59IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuXG4vLyBUaGlzIGRlZmluZXMgdGhlIGBDcmVhdGVRdWVyeU9wdGlvbnNgIHRoYXQgYXJlIGFjY2VwdGVkIGluIGBRdWVyaWVzT3B0aW9uc2AgJiBgR2V0T3B0aW9uc2AuXG4vLyBgcGxhY2Vob2xkZXJEYXRhYCBmdW5jdGlvbiBkb2VzIG5vdCBoYXZlIGEgcGFyYW1ldGVyXG50eXBlIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxcbiAgVFF1ZXJ5Rm5EYXRhID0gdW5rbm93bixcbiAgVEVycm9yID0gRGVmYXVsdEVycm9yLFxuICBURGF0YSA9IFRRdWVyeUZuRGF0YSxcbiAgVFF1ZXJ5S2V5IGV4dGVuZHMgUXVlcnlLZXkgPSBRdWVyeUtleSxcbj4gPSBPbWl0PFxuICBRdWVyeU9ic2VydmVyT3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUZuRGF0YSwgVFF1ZXJ5S2V5PixcbiAgJ3BsYWNlaG9sZGVyRGF0YSdcbj4gJiB7XG4gIHBsYWNlaG9sZGVyRGF0YT86IFRRdWVyeUZuRGF0YSB8IFF1ZXJpZXNQbGFjZWhvbGRlckRhdGFGdW5jdGlvbjxUUXVlcnlGbkRhdGE+XG59XG5cbi8vIEF2b2lkIFRTIGRlcHRoLWxpbWl0IGVycm9yIGluIGNhc2Ugb2YgbGFyZ2UgYXJyYXkgbGl0ZXJhbFxudHlwZSBNQVhJTVVNX0RFUFRIID0gMjBcblxudHlwZSBHZXRPcHRpb25zPFQ+ID1cbiAgLy8gUGFydCAxOiByZXNwb25zaWJsZSBmb3IgYXBwbHlpbmcgZXhwbGljaXQgdHlwZSBwYXJhbWV0ZXIgdG8gZnVuY3Rpb24gYXJndW1lbnRzLCBpZiBvYmplY3QgeyBxdWVyeUZuRGF0YTogVFF1ZXJ5Rm5EYXRhLCBlcnJvcjogVEVycm9yLCBkYXRhOiBURGF0YSB9XG4gIFQgZXh0ZW5kcyB7XG4gICAgcXVlcnlGbkRhdGE6IGluZmVyIFRRdWVyeUZuRGF0YVxuICAgIGVycm9yPzogaW5mZXIgVEVycm9yXG4gICAgZGF0YTogaW5mZXIgVERhdGFcbiAgfVxuICAgID8gUXVlcnlPYnNlcnZlck9wdGlvbnNGb3JDcmVhdGVRdWVyaWVzPFRRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YT5cbiAgICA6IFQgZXh0ZW5kcyB7IHF1ZXJ5Rm5EYXRhOiBpbmZlciBUUXVlcnlGbkRhdGE7IGVycm9yPzogaW5mZXIgVEVycm9yIH1cbiAgICAgID8gUXVlcnlPYnNlcnZlck9wdGlvbnNGb3JDcmVhdGVRdWVyaWVzPFRRdWVyeUZuRGF0YSwgVEVycm9yPlxuICAgICAgOiBUIGV4dGVuZHMgeyBkYXRhOiBpbmZlciBURGF0YTsgZXJyb3I/OiBpbmZlciBURXJyb3IgfVxuICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczx1bmtub3duLCBURXJyb3IsIFREYXRhPlxuICAgICAgICA6IC8vIFBhcnQgMjogcmVzcG9uc2libGUgZm9yIGFwcGx5aW5nIGV4cGxpY2l0IHR5cGUgcGFyYW1ldGVyIHRvIGZ1bmN0aW9uIGFyZ3VtZW50cywgaWYgdHVwbGUgW1RRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YV1cbiAgICAgICAgICBUIGV4dGVuZHMgW2luZmVyIFRRdWVyeUZuRGF0YSwgaW5mZXIgVEVycm9yLCBpbmZlciBURGF0YV1cbiAgICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGE+XG4gICAgICAgICAgOiBUIGV4dGVuZHMgW2luZmVyIFRRdWVyeUZuRGF0YSwgaW5mZXIgVEVycm9yXVxuICAgICAgICAgICAgPyBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3I+XG4gICAgICAgICAgICA6IFQgZXh0ZW5kcyBbaW5mZXIgVFF1ZXJ5Rm5EYXRhXVxuICAgICAgICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxUUXVlcnlGbkRhdGE+XG4gICAgICAgICAgICAgIDogLy8gUGFydCAzOiByZXNwb25zaWJsZSBmb3IgaW5mZXJyaW5nIGFuZCBlbmZvcmNpbmcgdHlwZSBpZiBubyBleHBsaWNpdCBwYXJhbWV0ZXIgd2FzIHByb3ZpZGVkXG4gICAgICAgICAgICAgICAgVCBleHRlbmRzIHtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlGbj86IFF1ZXJ5RnVuY3Rpb248aW5mZXIgVFF1ZXJ5Rm5EYXRhLCBpbmZlciBUUXVlcnlLZXk+XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdDogKGRhdGE6IGFueSkgPT4gaW5mZXIgVERhdGFcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dPbkVycm9yPzogVGhyb3dPbkVycm9yPGFueSwgaW5mZXIgVEVycm9yLCBhbnksIGFueT5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA/IFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxcbiAgICAgICAgICAgICAgICAgICAgVFF1ZXJ5Rm5EYXRhLFxuICAgICAgICAgICAgICAgICAgICBURXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIFREYXRhLFxuICAgICAgICAgICAgICAgICAgICBUUXVlcnlLZXlcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA6IFQgZXh0ZW5kcyB7XG4gICAgICAgICAgICAgICAgICAgICAgcXVlcnlGbj86IFF1ZXJ5RnVuY3Rpb248XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZlciBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZlciBUUXVlcnlLZXlcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgdGhyb3dPbkVycm9yPzogVGhyb3dPbkVycm9yPGFueSwgaW5mZXIgVEVycm9yLCBhbnksIGFueT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPyBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8XG4gICAgICAgICAgICAgICAgICAgICAgVFF1ZXJ5Rm5EYXRhLFxuICAgICAgICAgICAgICAgICAgICAgIFRFcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgVFF1ZXJ5S2V5XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDogLy8gRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgUXVlcnlPYnNlcnZlck9wdGlvbnNGb3JDcmVhdGVRdWVyaWVzXG5cbnR5cGUgR2V0UmVzdWx0czxUPiA9XG4gIC8vIFBhcnQgMTogcmVzcG9uc2libGUgZm9yIG1hcHBpbmcgZXhwbGljaXQgdHlwZSBwYXJhbWV0ZXIgdG8gZnVuY3Rpb24gcmVzdWx0LCBpZiBvYmplY3RcbiAgVCBleHRlbmRzIHsgcXVlcnlGbkRhdGE6IGFueTsgZXJyb3I/OiBpbmZlciBURXJyb3I7IGRhdGE6IGluZmVyIFREYXRhIH1cbiAgICA/IFF1ZXJ5T2JzZXJ2ZXJSZXN1bHQ8VERhdGEsIFRFcnJvcj5cbiAgICA6IFQgZXh0ZW5kcyB7IHF1ZXJ5Rm5EYXRhOiBpbmZlciBUUXVlcnlGbkRhdGE7IGVycm9yPzogaW5mZXIgVEVycm9yIH1cbiAgICAgID8gUXVlcnlPYnNlcnZlclJlc3VsdDxUUXVlcnlGbkRhdGEsIFRFcnJvcj5cbiAgICAgIDogVCBleHRlbmRzIHsgZGF0YTogaW5mZXIgVERhdGE7IGVycm9yPzogaW5mZXIgVEVycm9yIH1cbiAgICAgICAgPyBRdWVyeU9ic2VydmVyUmVzdWx0PFREYXRhLCBURXJyb3I+XG4gICAgICAgIDogLy8gUGFydCAyOiByZXNwb25zaWJsZSBmb3IgbWFwcGluZyBleHBsaWNpdCB0eXBlIHBhcmFtZXRlciB0byBmdW5jdGlvbiByZXN1bHQsIGlmIHR1cGxlXG4gICAgICAgICAgVCBleHRlbmRzIFthbnksIGluZmVyIFRFcnJvciwgaW5mZXIgVERhdGFdXG4gICAgICAgICAgPyBRdWVyeU9ic2VydmVyUmVzdWx0PFREYXRhLCBURXJyb3I+XG4gICAgICAgICAgOiBUIGV4dGVuZHMgW2luZmVyIFRRdWVyeUZuRGF0YSwgaW5mZXIgVEVycm9yXVxuICAgICAgICAgICAgPyBRdWVyeU9ic2VydmVyUmVzdWx0PFRRdWVyeUZuRGF0YSwgVEVycm9yPlxuICAgICAgICAgICAgOiBUIGV4dGVuZHMgW2luZmVyIFRRdWVyeUZuRGF0YV1cbiAgICAgICAgICAgICAgPyBRdWVyeU9ic2VydmVyUmVzdWx0PFRRdWVyeUZuRGF0YT5cbiAgICAgICAgICAgICAgOiAvLyBQYXJ0IDM6IHJlc3BvbnNpYmxlIGZvciBtYXBwaW5nIGluZmVycmVkIHR5cGUgdG8gcmVzdWx0cywgaWYgbm8gZXhwbGljaXQgcGFyYW1ldGVyIHdhcyBwcm92aWRlZFxuICAgICAgICAgICAgICAgIFQgZXh0ZW5kcyB7XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5Rm4/OiBRdWVyeUZ1bmN0aW9uPHVua25vd24sIGFueT5cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiAoZGF0YTogYW55KSA9PiBpbmZlciBURGF0YVxuICAgICAgICAgICAgICAgICAgICB0aHJvd09uRXJyb3I/OiBUaHJvd09uRXJyb3I8YW55LCBpbmZlciBURXJyb3IsIGFueSwgYW55PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgID8gUXVlcnlPYnNlcnZlclJlc3VsdDxcbiAgICAgICAgICAgICAgICAgICAgVERhdGEsXG4gICAgICAgICAgICAgICAgICAgIHVua25vd24gZXh0ZW5kcyBURXJyb3IgPyBEZWZhdWx0RXJyb3IgOiBURXJyb3JcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA6IFQgZXh0ZW5kcyB7XG4gICAgICAgICAgICAgICAgICAgICAgcXVlcnlGbj86IFF1ZXJ5RnVuY3Rpb248aW5mZXIgVFF1ZXJ5Rm5EYXRhLCBhbnk+XG4gICAgICAgICAgICAgICAgICAgICAgdGhyb3dPbkVycm9yPzogVGhyb3dPbkVycm9yPGFueSwgaW5mZXIgVEVycm9yLCBhbnksIGFueT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPyBRdWVyeU9ic2VydmVyUmVzdWx0PFxuICAgICAgICAgICAgICAgICAgICAgIFRRdWVyeUZuRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICB1bmtub3duIGV4dGVuZHMgVEVycm9yID8gRGVmYXVsdEVycm9yIDogVEVycm9yXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDogLy8gRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgUXVlcnlPYnNlcnZlclJlc3VsdFxuXG4vKipcbiAqIFF1ZXJpZXNPcHRpb25zIHJlZHVjZXIgcmVjdXJzaXZlbHkgdW53cmFwcyBmdW5jdGlvbiBhcmd1bWVudHMgdG8gaW5mZXIvZW5mb3JjZSB0eXBlIHBhcmFtXG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJpZXNPcHRpb25zPFxuICBUIGV4dGVuZHMgQXJyYXk8YW55PixcbiAgUmVzdWx0IGV4dGVuZHMgQXJyYXk8YW55PiA9IFtdLFxuICBEZXB0aCBleHRlbmRzIFJlYWRvbmx5QXJyYXk8bnVtYmVyPiA9IFtdLFxuPiA9IERlcHRoWydsZW5ndGgnXSBleHRlbmRzIE1BWElNVU1fREVQVEhcbiAgPyBBcnJheTxRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM+XG4gIDogVCBleHRlbmRzIFtdXG4gICAgPyBbXVxuICAgIDogVCBleHRlbmRzIFtpbmZlciBIZWFkXVxuICAgICAgPyBbLi4uUmVzdWx0LCBHZXRPcHRpb25zPEhlYWQ+XVxuICAgICAgOiBUIGV4dGVuZHMgW2luZmVyIEhlYWQsIC4uLmluZmVyIFRhaWxdXG4gICAgICAgID8gUXVlcmllc09wdGlvbnM8XG4gICAgICAgICAgICBbLi4uVGFpbF0sXG4gICAgICAgICAgICBbLi4uUmVzdWx0LCBHZXRPcHRpb25zPEhlYWQ+XSxcbiAgICAgICAgICAgIFsuLi5EZXB0aCwgMV1cbiAgICAgICAgICA+XG4gICAgICAgIDogQXJyYXk8dW5rbm93bj4gZXh0ZW5kcyBUXG4gICAgICAgICAgPyBUXG4gICAgICAgICAgOiAvLyBJZiBUIGlzICpzb21lKiBhcnJheSBidXQgd2UgY291bGRuJ3QgYXNzaWduIHVua25vd25bXSB0byBpdCwgdGhlbiBpdCBtdXN0IGhvbGQgc29tZSBrbm93bi9ob21vZ2Vub3VzIHR5cGUhXG4gICAgICAgICAgICAvLyB1c2UgdGhpcyB0byBpbmZlciB0aGUgcGFyYW0gdHlwZXMgaW4gdGhlIGNhc2Ugb2YgQXJyYXkubWFwKCkgYXJndW1lbnRcbiAgICAgICAgICAgIFQgZXh0ZW5kcyBBcnJheTxcbiAgICAgICAgICAgICAgICBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8XG4gICAgICAgICAgICAgICAgICBpbmZlciBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgICBpbmZlciBURXJyb3IsXG4gICAgICAgICAgICAgICAgICBpbmZlciBURGF0YSxcbiAgICAgICAgICAgICAgICAgIGluZmVyIFRRdWVyeUtleVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPyBBcnJheTxcbiAgICAgICAgICAgICAgICBRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM8XG4gICAgICAgICAgICAgICAgICBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgICBURXJyb3IsXG4gICAgICAgICAgICAgICAgICBURGF0YSxcbiAgICAgICAgICAgICAgICAgIFRRdWVyeUtleVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgOiAvLyBGYWxsYmFja1xuICAgICAgICAgICAgICBBcnJheTxRdWVyeU9ic2VydmVyT3B0aW9uc0ZvckNyZWF0ZVF1ZXJpZXM+XG5cbi8qKlxuICogUXVlcmllc1Jlc3VsdHMgcmVkdWNlciByZWN1cnNpdmVseSBtYXBzIHR5cGUgcGFyYW0gdG8gcmVzdWx0c1xuICovXG5leHBvcnQgdHlwZSBRdWVyaWVzUmVzdWx0czxcbiAgVCBleHRlbmRzIEFycmF5PGFueT4sXG4gIFJlc3VsdCBleHRlbmRzIEFycmF5PGFueT4gPSBbXSxcbiAgRGVwdGggZXh0ZW5kcyBSZWFkb25seUFycmF5PG51bWJlcj4gPSBbXSxcbj4gPSBEZXB0aFsnbGVuZ3RoJ10gZXh0ZW5kcyBNQVhJTVVNX0RFUFRIXG4gID8gQXJyYXk8UXVlcnlPYnNlcnZlclJlc3VsdD5cbiAgOiBUIGV4dGVuZHMgW11cbiAgICA/IFtdXG4gICAgOiBUIGV4dGVuZHMgW2luZmVyIEhlYWRdXG4gICAgICA/IFsuLi5SZXN1bHQsIEdldFJlc3VsdHM8SGVhZD5dXG4gICAgICA6IFQgZXh0ZW5kcyBbaW5mZXIgSGVhZCwgLi4uaW5mZXIgVGFpbF1cbiAgICAgICAgPyBRdWVyaWVzUmVzdWx0czxcbiAgICAgICAgICAgIFsuLi5UYWlsXSxcbiAgICAgICAgICAgIFsuLi5SZXN1bHQsIEdldFJlc3VsdHM8SGVhZD5dLFxuICAgICAgICAgICAgWy4uLkRlcHRoLCAxXVxuICAgICAgICAgID5cbiAgICAgICAgOiBUIGV4dGVuZHMgQXJyYXk8XG4gICAgICAgICAgICAgIFF1ZXJ5T2JzZXJ2ZXJPcHRpb25zRm9yQ3JlYXRlUXVlcmllczxcbiAgICAgICAgICAgICAgICBpbmZlciBUUXVlcnlGbkRhdGEsXG4gICAgICAgICAgICAgICAgaW5mZXIgVEVycm9yLFxuICAgICAgICAgICAgICAgIGluZmVyIFREYXRhLFxuICAgICAgICAgICAgICAgIGFueVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA+XG4gICAgICAgICAgPyAvLyBEeW5hbWljLXNpemUgKGhvbW9nZW5vdXMpIENyZWF0ZVF1ZXJ5T3B0aW9ucyBhcnJheTogbWFwIGRpcmVjdGx5IHRvIGFycmF5IG9mIHJlc3VsdHNcbiAgICAgICAgICAgIEFycmF5PFxuICAgICAgICAgICAgICBRdWVyeU9ic2VydmVyUmVzdWx0PFxuICAgICAgICAgICAgICAgIHVua25vd24gZXh0ZW5kcyBURGF0YSA/IFRRdWVyeUZuRGF0YSA6IFREYXRhLFxuICAgICAgICAgICAgICAgIHVua25vd24gZXh0ZW5kcyBURXJyb3IgPyBEZWZhdWx0RXJyb3IgOiBURXJyb3JcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPlxuICAgICAgICAgIDogLy8gRmFsbGJhY2tcbiAgICAgICAgICAgIEFycmF5PFF1ZXJ5T2JzZXJ2ZXJSZXN1bHQ+XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyaWVzPFxuICBUIGV4dGVuZHMgQXJyYXk8YW55PixcbiAgVENvbWJpbmVkUmVzdWx0ID0gUXVlcmllc1Jlc3VsdHM8VD4sXG4+KFxuICB7XG4gICAgcXVlcmllcyxcbiAgICAuLi5vcHRpb25zXG4gIH06IHtcbiAgICBxdWVyaWVzOiBTaWduYWw8Wy4uLlF1ZXJpZXNPcHRpb25zPFQ+XT5cbiAgICBjb21iaW5lPzogKHJlc3VsdDogUXVlcmllc1Jlc3VsdHM8VD4pID0+IFRDb21iaW5lZFJlc3VsdFxuICB9LFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKTogU2lnbmFsPFRDb21iaW5lZFJlc3VsdD4ge1xuICByZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0UXVlcmllcywgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpXG5cbiAgICBjb25zdCBkZWZhdWx0ZWRRdWVyaWVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgcmV0dXJuIHF1ZXJpZXMoKS5tYXAoKG9wdHMpID0+IHtcbiAgICAgICAgY29uc3QgZGVmYXVsdGVkT3B0aW9ucyA9IHF1ZXJ5Q2xpZW50LmRlZmF1bHRRdWVyeU9wdGlvbnMob3B0cylcbiAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSByZXN1bHRzIGFyZSBhbHJlYWR5IGluIGZldGNoaW5nIHN0YXRlIGJlZm9yZSBzdWJzY3JpYmluZyBvciB1cGRhdGluZyBvcHRpb25zXG4gICAgICAgIGRlZmF1bHRlZE9wdGlvbnMuX29wdGltaXN0aWNSZXN1bHRzID0gJ29wdGltaXN0aWMnXG5cbiAgICAgICAgcmV0dXJuIGRlZmF1bHRlZE9wdGlvbnNcbiAgICAgIH0pXG4gICAgfSlcblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFF1ZXJpZXNPYnNlcnZlcjxUQ29tYmluZWRSZXN1bHQ+KFxuICAgICAgcXVlcnlDbGllbnQsXG4gICAgICBkZWZhdWx0ZWRRdWVyaWVzKCksXG4gICAgICBvcHRpb25zIGFzIFF1ZXJpZXNPYnNlcnZlck9wdGlvbnM8VENvbWJpbmVkUmVzdWx0PixcbiAgICApXG5cbiAgICAvLyBEbyBub3Qgbm90aWZ5IG9uIHVwZGF0ZXMgYmVjYXVzZSBvZiBjaGFuZ2VzIGluIHRoZSBvcHRpb25zIGJlY2F1c2VcbiAgICAvLyB0aGVzZSBjaGFuZ2VzIHNob3VsZCBhbHJlYWR5IGJlIHJlZmxlY3RlZCBpbiB0aGUgb3B0aW1pc3RpYyByZXN1bHQuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIG9ic2VydmVyLnNldFF1ZXJpZXMoXG4gICAgICAgIGRlZmF1bHRlZFF1ZXJpZXMoKSxcbiAgICAgICAgb3B0aW9ucyBhcyBRdWVyaWVzT2JzZXJ2ZXJPcHRpb25zPFRDb21iaW5lZFJlc3VsdD4sXG4gICAgICAgIHsgbGlzdGVuZXJzOiBmYWxzZSB9LFxuICAgICAgKVxuICAgIH0pXG5cbiAgICBjb25zdCBbLCBnZXRDb21iaW5lZFJlc3VsdF0gPVxuICAgICAgb2JzZXJ2ZXIuZ2V0T3B0aW1pc3RpY1Jlc3VsdChkZWZhdWx0ZWRRdWVyaWVzKCkpXG5cbiAgICBjb25zdCByZXN1bHQgPSBzaWduYWwoZ2V0Q29tYmluZWRSZXN1bHQoKSBhcyBhbnkpXG5cbiAgICBjb25zdCB1bnN1YnNjcmliZSA9IG9ic2VydmVyLnN1YnNjcmliZShub3RpZnlNYW5hZ2VyLmJhdGNoQ2FsbHMocmVzdWx0LnNldCkpXG4gICAgZGVzdHJveVJlZi5vbkRlc3Ryb3kodW5zdWJzY3JpYmUpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0pXG59XG4iXX0=
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { QueryObserver } from '@tanstack/query-core';
|
|
2
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
-
import { injectQueryClient } from './injectQueryClient';
|
|
4
|
-
import { createBaseQuery } from './createBaseQuery';
|
|
5
|
-
export function injectQuery(options, injector) {
|
|
6
|
-
return assertInjector(injectQuery, injector, () => {
|
|
7
|
-
const queryClient = injectQueryClient();
|
|
8
|
-
return createBaseQuery(options, QueryObserver, queryClient);
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5qZWN0UXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUEwQ25ELE1BQU0sVUFBVSxXQUFXLENBTXpCLE9BRStELEVBQy9ELFFBQW1CO0lBRW5CLE9BQU8sY0FBYyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLENBQUE7UUFDdkMsT0FBTyxlQUFlLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQTtJQUM3RCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeU9ic2VydmVyIH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJ1xuaW1wb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQgfSBmcm9tICcuL2luamVjdFF1ZXJ5Q2xpZW50J1xuaW1wb3J0IHsgY3JlYXRlQmFzZVF1ZXJ5IH0gZnJvbSAnLi9jcmVhdGVCYXNlUXVlcnknXG5pbXBvcnQgdHlwZSB7IERlZmF1bHRFcnJvciwgUXVlcnlDbGllbnQsIFF1ZXJ5S2V5IH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgdHlwZSB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRlUXVlcnlPcHRpb25zLFxuICBDcmVhdGVRdWVyeVJlc3VsdCxcbiAgRGVmaW5lZENyZWF0ZVF1ZXJ5UmVzdWx0LFxufSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBEZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zLFxuICBVbmRlZmluZWRJbml0aWFsRGF0YU9wdGlvbnMsXG59IGZyb20gJy4vcXVlcnlPcHRpb25zJ1xuXG4vKipcbiAqIENyZWF0ZSBhIFF1ZXJ5LlxuICogQHBhcmFtIG9wdGlvbnNcbiAqIEBwYXJhbSBpbmplY3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcnk8XG4gIFRRdWVyeUZuRGF0YSA9IHVua25vd24sXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVERhdGEgPSBUUXVlcnlGbkRhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5ID0gUXVlcnlLZXksXG4+KFxuICBvcHRpb25zOiAoXG4gICAgY2xpZW50OiBRdWVyeUNsaWVudCxcbiAgKSA9PiBVbmRlZmluZWRJbml0aWFsRGF0YU9wdGlvbnM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3IsIFREYXRhLCBUUXVlcnlLZXk+LFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKTogQ3JlYXRlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvcj5cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5PFxuICBUUXVlcnlGbkRhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFREYXRhID0gVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXkgZXh0ZW5kcyBRdWVyeUtleSA9IFF1ZXJ5S2V5LFxuPihcbiAgb3B0aW9uczogKFxuICAgIGNsaWVudDogUXVlcnlDbGllbnQsXG4gICkgPT4gRGVmaW5lZEluaXRpYWxEYXRhT3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUtleT4sXG4gIGluamVjdG9yPzogSW5qZWN0b3IsXG4pOiBEZWZpbmVkQ3JlYXRlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvcj5cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5PFxuICBUUXVlcnlGbkRhdGEsXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVERhdGEgPSBUUXVlcnlGbkRhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5ID0gUXVlcnlLZXksXG4+KFxuICBvcHRpb25zOiAoXG4gICAgY2xpZW50OiBRdWVyeUNsaWVudCxcbiAgKSA9PiBDcmVhdGVRdWVyeU9wdGlvbnM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3IsIFREYXRhLCBUUXVlcnlLZXk+LFxuICBpbmplY3Rvcj86IEluamVjdG9yLFxuKSB7XG4gIHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RRdWVyeSwgaW5qZWN0b3IsICgpID0+IHtcbiAgICBjb25zdCBxdWVyeUNsaWVudCA9IGluamVjdFF1ZXJ5Q2xpZW50KClcbiAgICByZXR1cm4gY3JlYXRlQmFzZVF1ZXJ5KG9wdGlvbnMsIFF1ZXJ5T2JzZXJ2ZXIsIHF1ZXJ5Q2xpZW50KVxuICB9KVxufVxuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { createNoopInjectionToken } from 'ngxtension/create-injection-token';
|
|
2
|
-
const [injectQueryClient, provideQueryClient, QUERY_CLIENT] = createNoopInjectionToken('QueryClientToken');
|
|
3
|
-
export { injectQueryClient, provideQueryClient, QUERY_CLIENT };
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcnlDbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5qZWN0UXVlcnlDbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFHNUUsTUFBTSxDQUFDLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxHQUN6RCx3QkFBd0IsQ0FBYyxrQkFBa0IsQ0FBQyxDQUFBO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZU5vb3BJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ25neHRlbnNpb24vY3JlYXRlLWluamVjdGlvbi10b2tlbidcbmltcG9ydCB0eXBlIHsgUXVlcnlDbGllbnQgfSBmcm9tICdAdGFuc3RhY2svcXVlcnktY29yZSdcblxuY29uc3QgW2luamVjdFF1ZXJ5Q2xpZW50LCBwcm92aWRlUXVlcnlDbGllbnQsIFFVRVJZX0NMSUVOVF0gPVxuICBjcmVhdGVOb29wSW5qZWN0aW9uVG9rZW48UXVlcnlDbGllbnQ+KCdRdWVyeUNsaWVudFRva2VuJylcblxuZXhwb3J0IHsgaW5qZWN0UXVlcnlDbGllbnQsIHByb3ZpZGVRdWVyeUNsaWVudCwgUVVFUllfQ0xJRU5UIH1cbiJdfQ==
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { computed, untracked } from '@angular/core';
|
|
2
|
-
export function createResultStateSignalProxy(resultState) {
|
|
3
|
-
const internalState = {};
|
|
4
|
-
return new Proxy(internalState, {
|
|
5
|
-
get(target, prop) {
|
|
6
|
-
// first check if we have it in our internal state and return it
|
|
7
|
-
const computedField = target[prop];
|
|
8
|
-
// TODO: check if this if statement is necessary
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
10
|
-
if (computedField)
|
|
11
|
-
return computedField;
|
|
12
|
-
// then, check if it's a function on the resultState and return it
|
|
13
|
-
const targetField = untracked(resultState)[prop];
|
|
14
|
-
if (typeof targetField === 'function')
|
|
15
|
-
return targetField;
|
|
16
|
-
// finally, create a computed field, store it and return it
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
return (target[prop] = computed(() => resultState()[prop]));
|
|
19
|
-
},
|
|
20
|
-
has(target, prop) {
|
|
21
|
-
return !!target[prop];
|
|
22
|
-
},
|
|
23
|
-
ownKeys(target) {
|
|
24
|
-
return [...Reflect.ownKeys(target)];
|
|
25
|
-
},
|
|
26
|
-
getOwnPropertyDescriptor() {
|
|
27
|
-
return {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true,
|
|
30
|
-
};
|
|
31
|
-
},
|
|
32
|
-
set() {
|
|
33
|
-
return true;
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcHJveHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcnktcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJaEUsTUFBTSxVQUFVLDRCQUE0QixDQUkxQyxXQUEwQjtJQUMxQixNQUFNLGFBQWEsR0FBRyxFQUFpRCxDQUFBO0lBRXZFLE9BQU8sSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFO1FBQzlCLEdBQUcsQ0FDRCxNQUFtRCxFQUNuRCxJQUEyQjtZQUUzQixnRUFBZ0U7WUFDaEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQVcsQ0FBQyxDQUFBO1lBRXpDLGdEQUFnRDtZQUNoRCx1RUFBdUU7WUFDdkUsSUFBSSxhQUFhO2dCQUFFLE9BQU8sYUFBYSxDQUFBO1lBRXZDLGtFQUFrRTtZQUNsRSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBVyxDQUFDLENBQUE7WUFDdkQsSUFBSSxPQUFPLFdBQVcsS0FBSyxVQUFVO2dCQUFFLE9BQU8sV0FBVyxDQUFBO1lBRXpELDJEQUEyRDtZQUMzRCxhQUFhO1lBQ2IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3BFLENBQUM7UUFDRCxHQUFHLENBQ0QsTUFBbUQsRUFDbkQsSUFBeUI7WUFFekIsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQVMsQ0FBQyxDQUFBO1FBQzVCLENBQUM7UUFDRCxPQUFPLENBQUMsTUFBTTtZQUNaLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FBQ0Qsd0JBQXdCO1lBQ3RCLE9BQU87Z0JBQ0wsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJO2FBQ25CLENBQUE7UUFDSCxDQUFDO1FBQ0QsR0FBRztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFNpZ25hbCwgY29tcHV0ZWQsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgdHlwZSB7IERlZmF1bHRFcnJvciwgUXVlcnlPYnNlcnZlclJlc3VsdCB9IGZyb20gJ0B0YW5zdGFjay9xdWVyeS1jb3JlJ1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVCYXNlUXVlcnlSZXN1bHQgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVzdWx0U3RhdGVTaWduYWxQcm94eTxcbiAgVERhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFN0YXRlID0gUXVlcnlPYnNlcnZlclJlc3VsdDxURGF0YSwgVEVycm9yPixcbj4ocmVzdWx0U3RhdGU6IFNpZ25hbDxTdGF0ZT4pIHtcbiAgY29uc3QgaW50ZXJuYWxTdGF0ZSA9IHt9IGFzIENyZWF0ZUJhc2VRdWVyeVJlc3VsdDxURGF0YSwgVEVycm9yLCBTdGF0ZT5cblxuICByZXR1cm4gbmV3IFByb3h5KGludGVybmFsU3RhdGUsIHtcbiAgICBnZXQ8S2V5IGV4dGVuZHMga2V5b2YgU3RhdGU+KFxuICAgICAgdGFyZ2V0OiBDcmVhdGVCYXNlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvciwgU3RhdGU+LFxuICAgICAgcHJvcDogS2V5IHwgc3RyaW5nIHwgc3ltYm9sLFxuICAgICkge1xuICAgICAgLy8gZmlyc3QgY2hlY2sgaWYgd2UgaGF2ZSBpdCBpbiBvdXIgaW50ZXJuYWwgc3RhdGUgYW5kIHJldHVybiBpdFxuICAgICAgY29uc3QgY29tcHV0ZWRGaWVsZCA9IHRhcmdldFtwcm9wIGFzIEtleV1cblxuICAgICAgLy8gVE9ETzogY2hlY2sgaWYgdGhpcyBpZiBzdGF0ZW1lbnQgaXMgbmVjZXNzYXJ5XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgICAgaWYgKGNvbXB1dGVkRmllbGQpIHJldHVybiBjb21wdXRlZEZpZWxkXG5cbiAgICAgIC8vIHRoZW4sIGNoZWNrIGlmIGl0J3MgYSBmdW5jdGlvbiBvbiB0aGUgcmVzdWx0U3RhdGUgYW5kIHJldHVybiBpdFxuICAgICAgY29uc3QgdGFyZ2V0RmllbGQgPSB1bnRyYWNrZWQocmVzdWx0U3RhdGUpW3Byb3AgYXMgS2V5XVxuICAgICAgaWYgKHR5cGVvZiB0YXJnZXRGaWVsZCA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHRhcmdldEZpZWxkXG5cbiAgICAgIC8vIGZpbmFsbHksIGNyZWF0ZSBhIGNvbXB1dGVkIGZpZWxkLCBzdG9yZSBpdCBhbmQgcmV0dXJuIGl0XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gKHRhcmdldFtwcm9wXSA9IGNvbXB1dGVkKCgpID0+IHJlc3VsdFN0YXRlKClbcHJvcCBhcyBLZXldKSlcbiAgICB9LFxuICAgIGhhczxLIGV4dGVuZHMga2V5b2YgU3RhdGU+KFxuICAgICAgdGFyZ2V0OiBDcmVhdGVCYXNlUXVlcnlSZXN1bHQ8VERhdGEsIFRFcnJvciwgU3RhdGU+LFxuICAgICAgcHJvcDogSyB8IHN0cmluZyB8IHN5bWJvbCxcbiAgICApIHtcbiAgICAgIHJldHVybiAhIXRhcmdldFtwcm9wIGFzIEtdXG4gICAgfSxcbiAgICBvd25LZXlzKHRhcmdldCkge1xuICAgICAgcmV0dXJuIFsuLi5SZWZsZWN0Lm93bktleXModGFyZ2V0KV1cbiAgICB9LFxuICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHNldCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSxcbiAgfSlcbn1cbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export function queryOptions(options) {
|
|
2
|
-
return options;
|
|
3
|
-
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnlPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5T3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyQ0EsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFnQjtJQUMzQyxPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZWZhdWx0RXJyb3IsIFF1ZXJ5S2V5IH0gZnJvbSAnQHRhbnN0YWNrL3F1ZXJ5LWNvcmUnXG5pbXBvcnQgdHlwZSB7IENyZWF0ZVF1ZXJ5T3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCB0eXBlIFVuZGVmaW5lZEluaXRpYWxEYXRhT3B0aW9uczxcbiAgVFF1ZXJ5Rm5EYXRhID0gdW5rbm93bixcbiAgVEVycm9yID0gRGVmYXVsdEVycm9yLFxuICBURGF0YSA9IFRRdWVyeUZuRGF0YSxcbiAgVFF1ZXJ5S2V5IGV4dGVuZHMgUXVlcnlLZXkgPSBRdWVyeUtleSxcbj4gPSBDcmVhdGVRdWVyeU9wdGlvbnM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3IsIFREYXRhLCBUUXVlcnlLZXk+ICYge1xuICBpbml0aWFsRGF0YT86IHVuZGVmaW5lZFxufVxuXG50eXBlIE5vblVuZGVmaW5lZEd1YXJkPFQ+ID0gVCBleHRlbmRzIHVuZGVmaW5lZCA/IG5ldmVyIDogVFxuXG5leHBvcnQgdHlwZSBEZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zPFxuICBUUXVlcnlGbkRhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFREYXRhID0gVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXkgZXh0ZW5kcyBRdWVyeUtleSA9IFF1ZXJ5S2V5LFxuPiA9IENyZWF0ZVF1ZXJ5T3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUtleT4gJiB7XG4gIGluaXRpYWxEYXRhOlxuICAgIHwgTm9uVW5kZWZpbmVkR3VhcmQ8VFF1ZXJ5Rm5EYXRhPlxuICAgIHwgKCgpID0+IE5vblVuZGVmaW5lZEd1YXJkPFRRdWVyeUZuRGF0YT4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeU9wdGlvbnM8XG4gIFRRdWVyeUZuRGF0YSA9IHVua25vd24sXG4gIFRFcnJvciA9IERlZmF1bHRFcnJvcixcbiAgVERhdGEgPSBUUXVlcnlGbkRhdGEsXG4gIFRRdWVyeUtleSBleHRlbmRzIFF1ZXJ5S2V5ID0gUXVlcnlLZXksXG4+KFxuICBvcHRpb25zOiBVbmRlZmluZWRJbml0aWFsRGF0YU9wdGlvbnM8VFF1ZXJ5Rm5EYXRhLCBURXJyb3IsIFREYXRhLCBUUXVlcnlLZXk+LFxuKTogVW5kZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zPFRRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YSwgVFF1ZXJ5S2V5PlxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlPcHRpb25zPFxuICBUUXVlcnlGbkRhdGEgPSB1bmtub3duLFxuICBURXJyb3IgPSBEZWZhdWx0RXJyb3IsXG4gIFREYXRhID0gVFF1ZXJ5Rm5EYXRhLFxuICBUUXVlcnlLZXkgZXh0ZW5kcyBRdWVyeUtleSA9IFF1ZXJ5S2V5LFxuPihcbiAgb3B0aW9uczogRGVmaW5lZEluaXRpYWxEYXRhT3B0aW9uczxUUXVlcnlGbkRhdGEsIFRFcnJvciwgVERhdGEsIFRRdWVyeUtleT4sXG4pOiBEZWZpbmVkSW5pdGlhbERhdGFPcHRpb25zPFRRdWVyeUZuRGF0YSwgVEVycm9yLCBURGF0YSwgVFF1ZXJ5S2V5PlxuXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlPcHRpb25zKG9wdGlvbnM6IHVua25vd24pIHtcbiAgcmV0dXJuIG9wdGlvbnNcbn1cbiJdfQ==
|
package/build/query-proxy.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type Signal } from '@angular/core';
|
|
2
|
-
import type { DefaultError, QueryObserverResult } from '@tanstack/query-core';
|
|
3
|
-
import type { CreateBaseQueryResult } from './types';
|
|
4
|
-
export declare function createResultStateSignalProxy<TData = unknown, TError = DefaultError, State = QueryObserverResult<TData, TError>>(resultState: Signal<State>): CreateBaseQueryResult<TData, TError, State>;
|
package/src/query-proxy.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { type Signal, computed, untracked } from '@angular/core'
|
|
2
|
-
import type { DefaultError, QueryObserverResult } from '@tanstack/query-core'
|
|
3
|
-
import type { CreateBaseQueryResult } from './types'
|
|
4
|
-
|
|
5
|
-
export function createResultStateSignalProxy<
|
|
6
|
-
TData = unknown,
|
|
7
|
-
TError = DefaultError,
|
|
8
|
-
State = QueryObserverResult<TData, TError>,
|
|
9
|
-
>(resultState: Signal<State>) {
|
|
10
|
-
const internalState = {} as CreateBaseQueryResult<TData, TError, State>
|
|
11
|
-
|
|
12
|
-
return new Proxy(internalState, {
|
|
13
|
-
get<Key extends keyof State>(
|
|
14
|
-
target: CreateBaseQueryResult<TData, TError, State>,
|
|
15
|
-
prop: Key | string | symbol,
|
|
16
|
-
) {
|
|
17
|
-
// first check if we have it in our internal state and return it
|
|
18
|
-
const computedField = target[prop as Key]
|
|
19
|
-
|
|
20
|
-
// TODO: check if this if statement is necessary
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
22
|
-
if (computedField) return computedField
|
|
23
|
-
|
|
24
|
-
// then, check if it's a function on the resultState and return it
|
|
25
|
-
const targetField = untracked(resultState)[prop as Key]
|
|
26
|
-
if (typeof targetField === 'function') return targetField
|
|
27
|
-
|
|
28
|
-
// finally, create a computed field, store it and return it
|
|
29
|
-
// @ts-ignore
|
|
30
|
-
return (target[prop] = computed(() => resultState()[prop as Key]))
|
|
31
|
-
},
|
|
32
|
-
has<K extends keyof State>(
|
|
33
|
-
target: CreateBaseQueryResult<TData, TError, State>,
|
|
34
|
-
prop: K | string | symbol,
|
|
35
|
-
) {
|
|
36
|
-
return !!target[prop as K]
|
|
37
|
-
},
|
|
38
|
-
ownKeys(target) {
|
|
39
|
-
return [...Reflect.ownKeys(target)]
|
|
40
|
-
},
|
|
41
|
-
getOwnPropertyDescriptor() {
|
|
42
|
-
return {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
configurable: true,
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
set(): boolean {
|
|
48
|
-
return true
|
|
49
|
-
},
|
|
50
|
-
})
|
|
51
|
-
}
|