@tanstack/lit-query 0.2.11 → 0.2.13

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.
Files changed (143) hide show
  1. package/README.md +17 -0
  2. package/build/legacy/index.cjs +1585 -0
  3. package/build/legacy/index.cjs.map +1 -0
  4. package/build/legacy/index.d.cts +781 -0
  5. package/build/legacy/index.d.cts.map +1 -0
  6. package/build/legacy/index.d.ts +781 -0
  7. package/build/legacy/index.d.ts.map +1 -0
  8. package/build/legacy/index.js +1561 -0
  9. package/build/legacy/index.js.map +1 -0
  10. package/build/modern/index.cjs +1569 -0
  11. package/build/modern/index.cjs.map +1 -0
  12. package/build/modern/index.d.cts +781 -0
  13. package/build/modern/index.d.cts.map +1 -0
  14. package/build/modern/index.d.ts +781 -0
  15. package/build/modern/index.d.ts.map +1 -0
  16. package/build/modern/index.js +1545 -0
  17. package/build/modern/index.js.map +1 -0
  18. package/package.json +27 -30
  19. package/src/createInfiniteQueryController.ts +0 -1
  20. package/src/createMutationController.ts +9 -7
  21. package/src/createQueriesController.ts +0 -2
  22. package/src/createQueryController.ts +0 -1
  23. package/src/infiniteQueryOptions.ts +10 -4
  24. package/dist/QueryClientProvider.d.ts +0 -85
  25. package/dist/QueryClientProvider.d.ts.map +0 -1
  26. package/dist/QueryClientProvider.js +0 -137
  27. package/dist/QueryClientProvider.js.map +0 -1
  28. package/dist/accessor.d.ts +0 -32
  29. package/dist/accessor.d.ts.map +0 -1
  30. package/dist/accessor.js +0 -12
  31. package/dist/accessor.js.map +0 -1
  32. package/dist/context.d.ts +0 -59
  33. package/dist/context.d.ts.map +0 -1
  34. package/dist/context.js +0 -100
  35. package/dist/context.js.map +0 -1
  36. package/dist/controllers/BaseController.d.ts +0 -39
  37. package/dist/controllers/BaseController.d.ts.map +0 -1
  38. package/dist/controllers/BaseController.js +0 -213
  39. package/dist/controllers/BaseController.js.map +0 -1
  40. package/dist/createInfiniteQueryController.d.ts +0 -76
  41. package/dist/createInfiniteQueryController.d.ts.map +0 -1
  42. package/dist/createInfiniteQueryController.js +0 -248
  43. package/dist/createInfiniteQueryController.js.map +0 -1
  44. package/dist/createMutationController.d.ts +0 -79
  45. package/dist/createMutationController.d.ts.map +0 -1
  46. package/dist/createMutationController.js +0 -193
  47. package/dist/createMutationController.js.map +0 -1
  48. package/dist/createQueriesController.d.ts +0 -145
  49. package/dist/createQueriesController.d.ts.map +0 -1
  50. package/dist/createQueriesController.js +0 -367
  51. package/dist/createQueriesController.js.map +0 -1
  52. package/dist/createQueryController.d.ts +0 -67
  53. package/dist/createQueryController.d.ts.map +0 -1
  54. package/dist/createQueryController.js +0 -238
  55. package/dist/createQueryController.js.map +0 -1
  56. package/dist/index.d.ts +0 -24
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js +0 -15
  59. package/dist/index.js.map +0 -1
  60. package/dist/infiniteQueryOptions.d.ts +0 -21
  61. package/dist/infiniteQueryOptions.d.ts.map +0 -1
  62. package/dist/infiniteQueryOptions.js +0 -22
  63. package/dist/infiniteQueryOptions.js.map +0 -1
  64. package/dist/mutationOptions.d.ts +0 -19
  65. package/dist/mutationOptions.d.ts.map +0 -1
  66. package/dist/mutationOptions.js +0 -20
  67. package/dist/mutationOptions.js.map +0 -1
  68. package/dist/queryObserverResultTracker.d.ts +0 -14
  69. package/dist/queryObserverResultTracker.d.ts.map +0 -1
  70. package/dist/queryObserverResultTracker.js +0 -18
  71. package/dist/queryObserverResultTracker.js.map +0 -1
  72. package/dist/queryOptions.d.ts +0 -62
  73. package/dist/queryOptions.d.ts.map +0 -1
  74. package/dist/queryOptions.js +0 -4
  75. package/dist/queryOptions.js.map +0 -1
  76. package/dist/types.d.ts +0 -31
  77. package/dist/types.d.ts.map +0 -1
  78. package/dist/types.js +0 -2
  79. package/dist/types.js.map +0 -1
  80. package/dist/useIsFetching.d.ts +0 -45
  81. package/dist/useIsFetching.d.ts.map +0 -1
  82. package/dist/useIsFetching.js +0 -116
  83. package/dist/useIsFetching.js.map +0 -1
  84. package/dist/useIsMutating.d.ts +0 -45
  85. package/dist/useIsMutating.d.ts.map +0 -1
  86. package/dist/useIsMutating.js +0 -116
  87. package/dist/useIsMutating.js.map +0 -1
  88. package/dist/useMutationState.d.ts +0 -57
  89. package/dist/useMutationState.d.ts.map +0 -1
  90. package/dist/useMutationState.js +0 -136
  91. package/dist/useMutationState.js.map +0 -1
  92. package/dist-cjs/QueryClientProvider.d.cts +0 -84
  93. package/dist-cjs/QueryClientProvider.js +0 -141
  94. package/dist-cjs/QueryClientProvider.js.map +0 -1
  95. package/dist-cjs/accessor.d.cts +0 -31
  96. package/dist-cjs/accessor.js +0 -16
  97. package/dist-cjs/accessor.js.map +0 -1
  98. package/dist-cjs/context.d.cts +0 -58
  99. package/dist-cjs/context.js +0 -109
  100. package/dist-cjs/context.js.map +0 -1
  101. package/dist-cjs/controllers/BaseController.d.cts +0 -38
  102. package/dist-cjs/controllers/BaseController.js +0 -217
  103. package/dist-cjs/controllers/BaseController.js.map +0 -1
  104. package/dist-cjs/createInfiniteQueryController.d.cts +0 -75
  105. package/dist-cjs/createInfiniteQueryController.js +0 -251
  106. package/dist-cjs/createInfiniteQueryController.js.map +0 -1
  107. package/dist-cjs/createMutationController.d.cts +0 -78
  108. package/dist-cjs/createMutationController.js +0 -196
  109. package/dist-cjs/createMutationController.js.map +0 -1
  110. package/dist-cjs/createQueriesController.d.cts +0 -144
  111. package/dist-cjs/createQueriesController.js +0 -370
  112. package/dist-cjs/createQueriesController.js.map +0 -1
  113. package/dist-cjs/createQueryController.d.cts +0 -66
  114. package/dist-cjs/createQueryController.js +0 -241
  115. package/dist-cjs/createQueryController.js.map +0 -1
  116. package/dist-cjs/index.d.cts +0 -23
  117. package/dist-cjs/index.js +0 -49
  118. package/dist-cjs/index.js.map +0 -1
  119. package/dist-cjs/infiniteQueryOptions.d.cts +0 -20
  120. package/dist-cjs/infiniteQueryOptions.js +0 -25
  121. package/dist-cjs/infiniteQueryOptions.js.map +0 -1
  122. package/dist-cjs/mutationOptions.d.cts +0 -18
  123. package/dist-cjs/mutationOptions.js +0 -23
  124. package/dist-cjs/mutationOptions.js.map +0 -1
  125. package/dist-cjs/package.json +0 -3
  126. package/dist-cjs/queryObserverResultTracker.d.cts +0 -13
  127. package/dist-cjs/queryObserverResultTracker.js +0 -22
  128. package/dist-cjs/queryObserverResultTracker.js.map +0 -1
  129. package/dist-cjs/queryOptions.d.cts +0 -61
  130. package/dist-cjs/queryOptions.js +0 -7
  131. package/dist-cjs/queryOptions.js.map +0 -1
  132. package/dist-cjs/types.d.cts +0 -30
  133. package/dist-cjs/types.js +0 -3
  134. package/dist-cjs/types.js.map +0 -1
  135. package/dist-cjs/useIsFetching.d.cts +0 -44
  136. package/dist-cjs/useIsFetching.js +0 -119
  137. package/dist-cjs/useIsFetching.js.map +0 -1
  138. package/dist-cjs/useIsMutating.d.cts +0 -44
  139. package/dist-cjs/useIsMutating.js +0 -119
  140. package/dist-cjs/useIsMutating.js.map +0 -1
  141. package/dist-cjs/useMutationState.d.cts +0 -56
  142. package/dist-cjs/useMutationState.js +0 -139
  143. package/dist-cjs/useMutationState.js.map +0 -1
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueryClientProvider = void 0;
4
- const context_1 = require("@lit/context");
5
- const lit_1 = require("lit");
6
- const context_js_1 = require("./context.js");
7
- /**
8
- * Lit element that provides a `QueryClient` to descendant Lit Query
9
- * controllers through Lit context.
10
- *
11
- * The `client` is a property, not an attribute. When rendering this element in
12
- * a Lit template, bind it with property binding: `.client=${queryClient}`.
13
- * The provider throws if it connects without a client, or if an already
14
- * connected provider has its client cleared.
15
- *
16
- * This class is not registered as a custom element by the package. Applications
17
- * must register either a subclass or the class itself with
18
- * `customElements.define`.
19
- *
20
- * @example
21
- * ```ts
22
- * import { html, LitElement } from 'lit'
23
- * import { QueryClient, QueryClientProvider } from '@tanstack/lit-query'
24
- *
25
- * const queryClient = new QueryClient()
26
- *
27
- * class AppQueryProvider extends QueryClientProvider {
28
- * constructor() {
29
- * super()
30
- * this.client = queryClient
31
- * }
32
- * }
33
- *
34
- * customElements.define('app-query-provider', AppQueryProvider)
35
- *
36
- * class AppRoot extends LitElement {
37
- * render() {
38
- * return html`<app-query-provider><todos-view></todos-view></app-query-provider>`
39
- * }
40
- * }
41
- * ```
42
- *
43
- * @example
44
- * ```ts
45
- * import { html } from 'lit'
46
- * import { QueryClient, QueryClientProvider } from '@tanstack/lit-query'
47
- *
48
- * const queryClient = new QueryClient()
49
- *
50
- * customElements.define('query-client-provider', QueryClientProvider)
51
- *
52
- * const view = html`
53
- * <query-client-provider .client=${queryClient}>
54
- * <todos-view></todos-view>
55
- * </query-client-provider>
56
- * `
57
- * ```
58
- */
59
- class QueryClientProvider extends lit_1.LitElement {
60
- /** @internal */
61
- static properties = {
62
- client: { attribute: false },
63
- };
64
- contextProvider;
65
- mountedClient;
66
- constructor() {
67
- super();
68
- this.contextProvider = new context_1.ContextProvider(this, {
69
- context: context_js_1.queryClientContext,
70
- });
71
- }
72
- /** @internal */
73
- connectedCallback() {
74
- super.connectedCallback();
75
- const client = this.requireClient();
76
- this.contextProvider.setValue(client);
77
- this.mountClient(client);
78
- }
79
- /** @internal */
80
- disconnectedCallback() {
81
- this.unmountClient(this.mountedClient);
82
- super.disconnectedCallback();
83
- }
84
- /** @internal */
85
- willUpdate(changedProperties) {
86
- if (!changedProperties.has('client')) {
87
- return;
88
- }
89
- const nextClient = this.client;
90
- if (!nextClient) {
91
- if (this.isConnected) {
92
- this.unmountClient(this.mountedClient);
93
- // Sentinel: notify active consumers that the provider is now unbound.
94
- this.contextProvider.setValue(undefined);
95
- throw (0, context_js_1.createMissingQueryClientError)();
96
- }
97
- return;
98
- }
99
- const previousClient = changedProperties.get('client');
100
- if (previousClient && previousClient !== nextClient && this.isConnected) {
101
- this.unmountClient(previousClient);
102
- }
103
- this.contextProvider.setValue(nextClient);
104
- if (this.isConnected) {
105
- this.mountClient(nextClient);
106
- }
107
- }
108
- /** @internal */
109
- render() {
110
- return (0, lit_1.html) `<slot></slot>`;
111
- }
112
- mountClient(client) {
113
- if (this.mountedClient === client) {
114
- return;
115
- }
116
- if (this.mountedClient) {
117
- this.unmountClient(this.mountedClient);
118
- }
119
- client.mount();
120
- (0, context_js_1.registerDefaultQueryClient)(client);
121
- this.mountedClient = client;
122
- }
123
- unmountClient(client) {
124
- if (!client) {
125
- return;
126
- }
127
- client.unmount();
128
- (0, context_js_1.unregisterDefaultQueryClient)(client);
129
- if (this.mountedClient === client) {
130
- this.mountedClient = undefined;
131
- }
132
- }
133
- requireClient() {
134
- if (!this.client) {
135
- throw (0, context_js_1.createMissingQueryClientError)();
136
- }
137
- return this.client;
138
- }
139
- }
140
- exports.QueryClientProvider = QueryClientProvider;
141
- //# sourceMappingURL=QueryClientProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"QueryClientProvider.js","sourceRoot":"","sources":["../src/QueryClientProvider.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * A value that can be passed directly or read from a zero-argument getter.
3
- *
4
- * Lit Query APIs read function accessors during host updates, so the getter can
5
- * depend on reactive host state.
6
- *
7
- * @example
8
- * ```ts
9
- * const staticKey: Accessor<readonly unknown[]> = ['todos']
10
- * const reactiveKey: Accessor<readonly unknown[]> = () => ['todos', this.userId]
11
- * ```
12
- */
13
- export type Accessor<T> = T | (() => T);
14
- export declare function readAccessor<T>(value: Accessor<T>): T;
15
- /**
16
- * A callable accessor with a `current` property for reading the latest
17
- * controller result.
18
- *
19
- * Controller creators and cache state helpers return this shape so render code
20
- * can use either `result()` or `result.current`.
21
- *
22
- * @example
23
- * ```ts
24
- * const query = this.todos()
25
- * const sameQuery = this.todos.current
26
- * ```
27
- */
28
- export type ValueAccessor<T> = (() => T) & {
29
- readonly current: T;
30
- };
31
- export declare function createValueAccessor<T>(getter: () => T): ValueAccessor<T>;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readAccessor = readAccessor;
4
- exports.createValueAccessor = createValueAccessor;
5
- function readAccessor(value) {
6
- return typeof value === 'function' ? value() : value;
7
- }
8
- function createValueAccessor(getter) {
9
- const accessor = (() => getter());
10
- Object.defineProperty(accessor, 'current', {
11
- get: getter,
12
- enumerable: true,
13
- });
14
- return accessor;
15
- }
16
- //# sourceMappingURL=accessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.js","sourceRoot":"","sources":["../src/accessor.ts"],"names":[],"mappings":";;AAcA,oCAEC;AAmBD,kDAOC;AA5BD,SAAgB,YAAY,CAAI,KAAkB;IAChD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAE,KAAiB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AACnE,CAAC;AAmBD,SAAgB,mBAAmB,CAAI,MAAe;IACpD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAqB,CAAA;IACrD,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE;QACzC,GAAG,EAAE,MAAM;QACX,UAAU,EAAE,IAAI;KACjB,CAAC,CAAA;IACF,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -1,58 +0,0 @@
1
- import type { QueryClient } from '@tanstack/query-core';
2
- /**
3
- * Lit context key used by `QueryClientProvider` and host-bound APIs to share a
4
- * `QueryClient` through the DOM tree.
5
- *
6
- * Most applications use `QueryClientProvider` instead of interacting with this
7
- * context directly.
8
- */
9
- export declare const queryClientContext: {
10
- __context__: QueryClient;
11
- };
12
- /**
13
- * Registers a `QueryClient` as a process-local fallback for APIs that resolve a
14
- * client without an explicit argument.
15
- *
16
- * `QueryClientProvider` calls this automatically while it is connected. Prefer
17
- * passing an explicit client or rendering under a provider when possible.
18
- *
19
- * @param client - The query client to register as the current default.
20
- */
21
- export declare function registerDefaultQueryClient(client: QueryClient): void;
22
- /**
23
- * Unregisters a client previously registered with
24
- * `registerDefaultQueryClient`.
25
- *
26
- * `QueryClientProvider` calls this automatically when it disconnects.
27
- *
28
- * @param client - The query client registration to release.
29
- */
30
- export declare function unregisterDefaultQueryClient(client: QueryClient): void;
31
- /**
32
- * Returns the registered default `QueryClient`, if exactly one default client is
33
- * available.
34
- *
35
- * @returns The default query client, or `undefined` when there is no registered
36
- * client or more than one registered client.
37
- */
38
- export declare function getDefaultQueryClient(): QueryClient | undefined;
39
- export declare function createMissingQueryClientError(): Error;
40
- /**
41
- * Resolves the current default `QueryClient` registered by a connected
42
- * `QueryClientProvider`.
43
- *
44
- * This helper is useful outside a Lit reactive controller when a single
45
- * provider is mounted. It throws if no client is registered or if multiple
46
- * clients are mounted and the default would be ambiguous.
47
- *
48
- * @returns The single registered query client.
49
- */
50
- export declare function useQueryClient(): QueryClient;
51
- /**
52
- * Resolves an explicit `QueryClient` or falls back to `useQueryClient`.
53
- *
54
- * @param explicit - Optional client supplied by the caller.
55
- * @returns The explicit client when provided, otherwise the current default
56
- * client.
57
- */
58
- export declare function resolveQueryClient(explicit?: QueryClient): QueryClient;
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.queryClientContext = void 0;
4
- exports.registerDefaultQueryClient = registerDefaultQueryClient;
5
- exports.unregisterDefaultQueryClient = unregisterDefaultQueryClient;
6
- exports.getDefaultQueryClient = getDefaultQueryClient;
7
- exports.createMissingQueryClientError = createMissingQueryClientError;
8
- exports.useQueryClient = useQueryClient;
9
- exports.resolveQueryClient = resolveQueryClient;
10
- const context_1 = require("@lit/context");
11
- /**
12
- * Lit context key used by `QueryClientProvider` and host-bound APIs to share a
13
- * `QueryClient` through the DOM tree.
14
- *
15
- * Most applications use `QueryClientProvider` instead of interacting with this
16
- * context directly.
17
- */
18
- exports.queryClientContext = (0, context_1.createContext)(Symbol.for('tanstack-query-client'));
19
- const missingQueryClientMessage = 'No QueryClient available. Pass one explicitly or render within QueryClientProvider.';
20
- const ambiguousQueryClientMessage = 'Multiple QueryClients are mounted. Pass one explicitly instead of relying on global QueryClient helpers.';
21
- const registeredClients = new Map();
22
- let defaultClient;
23
- /**
24
- * Registers a `QueryClient` as a process-local fallback for APIs that resolve a
25
- * client without an explicit argument.
26
- *
27
- * `QueryClientProvider` calls this automatically while it is connected. Prefer
28
- * passing an explicit client or rendering under a provider when possible.
29
- *
30
- * @param client - The query client to register as the current default.
31
- */
32
- function registerDefaultQueryClient(client) {
33
- registeredClients.set(client, (registeredClients.get(client) ?? 0) + 1);
34
- defaultClient = client;
35
- }
36
- /**
37
- * Unregisters a client previously registered with
38
- * `registerDefaultQueryClient`.
39
- *
40
- * `QueryClientProvider` calls this automatically when it disconnects.
41
- *
42
- * @param client - The query client registration to release.
43
- */
44
- function unregisterDefaultQueryClient(client) {
45
- const count = registeredClients.get(client);
46
- if (count === undefined) {
47
- return;
48
- }
49
- if (count > 1) {
50
- registeredClients.set(client, count - 1);
51
- return;
52
- }
53
- registeredClients.delete(client);
54
- if (defaultClient !== client) {
55
- return;
56
- }
57
- const remaining = [...registeredClients.keys()];
58
- defaultClient = remaining.at(-1);
59
- }
60
- /**
61
- * Returns the registered default `QueryClient`, if exactly one default client is
62
- * available.
63
- *
64
- * @returns The default query client, or `undefined` when there is no registered
65
- * client or more than one registered client.
66
- */
67
- function getDefaultQueryClient() {
68
- if (registeredClients.size > 1) {
69
- return undefined;
70
- }
71
- return defaultClient;
72
- }
73
- function createMissingQueryClientError() {
74
- return new Error(missingQueryClientMessage);
75
- }
76
- function createAmbiguousQueryClientError() {
77
- return new Error(ambiguousQueryClientMessage);
78
- }
79
- /**
80
- * Resolves the current default `QueryClient` registered by a connected
81
- * `QueryClientProvider`.
82
- *
83
- * This helper is useful outside a Lit reactive controller when a single
84
- * provider is mounted. It throws if no client is registered or if multiple
85
- * clients are mounted and the default would be ambiguous.
86
- *
87
- * @returns The single registered query client.
88
- */
89
- function useQueryClient() {
90
- const client = getDefaultQueryClient();
91
- if (client) {
92
- return client;
93
- }
94
- if (registeredClients.size > 1) {
95
- throw createAmbiguousQueryClientError();
96
- }
97
- throw createMissingQueryClientError();
98
- }
99
- /**
100
- * Resolves an explicit `QueryClient` or falls back to `useQueryClient`.
101
- *
102
- * @param explicit - Optional client supplied by the caller.
103
- * @returns The explicit client when provided, otherwise the current default
104
- * client.
105
- */
106
- function resolveQueryClient(explicit) {
107
- return explicit ?? useQueryClient();
108
- }
109
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AA+BA,gEAGC;AAUD,oEAkBC;AASD,sDAMC;AAED,sEAEC;AAgBD,wCAWC;AASD,gDAEC;AAvHD,0CAA4C;AAG5C;;;;;;GAMG;AACU,QAAA,kBAAkB,GAAG,IAAA,uBAAa,EAC7C,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CACpC,CAAA;AAED,MAAM,yBAAyB,GAC7B,qFAAqF,CAAA;AACvF,MAAM,2BAA2B,GAC/B,0GAA0G,CAAA;AAE5G,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAA;AACxD,IAAI,aAAsC,CAAA;AAE1C;;;;;;;;GAQG;AACH,SAAgB,0BAA0B,CAAC,MAAmB;IAC5D,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACvE,aAAa,GAAG,MAAM,CAAA;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,4BAA4B,CAAC,MAAmB;IAC9D,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAM;IACR,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QACxC,OAAM;IACR,CAAC;IAED,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAA;IAC/C,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,qBAAqB;IACnC,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,SAAgB,6BAA6B;IAC3C,OAAO,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,+BAA+B;IACtC,OAAO,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,cAAc;IAC5B,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAA;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,+BAA+B,EAAE,CAAA;IACzC,CAAC;IAED,MAAM,6BAA6B,EAAE,CAAA;AACvC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,QAAsB;IACvD,OAAO,QAAQ,IAAI,cAAc,EAAE,CAAA;AACrC,CAAC"}
@@ -1,38 +0,0 @@
1
- import type { QueryClient } from '@tanstack/query-core';
2
- import type { ReactiveController, ReactiveControllerHost } from 'lit' with { "resolution-mode": "import" };
3
- export declare abstract class BaseController<TResult> implements ReactiveController {
4
- protected readonly host: ReactiveControllerHost;
5
- protected result: TResult;
6
- private readonly explicitClient?;
7
- private contextClient;
8
- private contextUnsubscribe;
9
- private connected;
10
- private destroyed;
11
- private updateQueued;
12
- private clientChangeQueued;
13
- private connectionAttempt;
14
- private isHostUpdating;
15
- private queryClientResolutionState;
16
- protected constructor(host: ReactiveControllerHost, initialResult: TResult, queryClient?: QueryClient);
17
- hostConnected(): void;
18
- hostDisconnected(): void;
19
- hostUpdate(): void;
20
- destroy(): void;
21
- protected tryGetQueryClient(): QueryClient | undefined;
22
- protected getQueryClient(): QueryClient;
23
- protected setResult(next: TResult): void;
24
- get current(): TResult;
25
- protected get connectedState(): boolean;
26
- protected queueUpdate(): void;
27
- private queueQueryClientChanged;
28
- private beginContextResolution;
29
- private queueContextResolution;
30
- private dispatchContextRequest;
31
- private queueInitialContextResolutionCompletion;
32
- private clearContextClient;
33
- private updateQueryClientResolutionState;
34
- protected abstract onConnected(): void;
35
- protected abstract onDisconnected(): void;
36
- protected abstract onHostUpdate(): void;
37
- protected abstract onQueryClientChanged(): void;
38
- }
@@ -1,217 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseController = void 0;
4
- const context_1 = require("@lit/context");
5
- const context_js_1 = require("../context.js");
6
- class BaseController {
7
- host;
8
- result;
9
- explicitClient;
10
- contextClient;
11
- contextUnsubscribe;
12
- connected = false;
13
- destroyed = false;
14
- updateQueued = false;
15
- clientChangeQueued = false;
16
- connectionAttempt = 0;
17
- isHostUpdating = false;
18
- queryClientResolutionState;
19
- constructor(host, initialResult, queryClient) {
20
- this.host = host;
21
- this.explicitClient = queryClient;
22
- this.result = initialResult;
23
- this.queryClientResolutionState = queryClient ? 'bound' : 'pre-connect';
24
- host.addController(this);
25
- }
26
- hostConnected() {
27
- if (this.connected || this.destroyed) {
28
- return;
29
- }
30
- this.connected = true;
31
- let contextResolutionAttempt;
32
- if (this.explicitClient) {
33
- this.queryClientResolutionState = 'bound';
34
- }
35
- else {
36
- contextResolutionAttempt = ++this.connectionAttempt;
37
- this.beginContextResolution();
38
- }
39
- // Defer onConnected to ensure subclass constructors complete before
40
- // lifecycle callbacks access subclass state. This handles the case where
41
- // addController is called on an already-connected host (e.g., during
42
- // willUpdate), which synchronously triggers hostConnected before
43
- // subclass field initialization.
44
- queueMicrotask(() => {
45
- if (this.connected && !this.destroyed) {
46
- this.onConnected();
47
- }
48
- });
49
- if (contextResolutionAttempt !== undefined) {
50
- // Provider-backed controllers on already-connected hosts should finish
51
- // their deferred onConnected pass before a context client binds.
52
- this.queueContextResolution(contextResolutionAttempt);
53
- }
54
- }
55
- hostDisconnected() {
56
- if (!this.connected) {
57
- return;
58
- }
59
- this.connected = false;
60
- if (!this.explicitClient) {
61
- this.connectionAttempt += 1;
62
- this.clearContextClient();
63
- this.updateQueryClientResolutionState('pre-connect');
64
- }
65
- this.onDisconnected();
66
- }
67
- hostUpdate() {
68
- if (this.destroyed) {
69
- return;
70
- }
71
- this.isHostUpdating = true;
72
- try {
73
- this.onHostUpdate();
74
- }
75
- finally {
76
- this.isHostUpdating = false;
77
- }
78
- }
79
- destroy() {
80
- if (this.destroyed) {
81
- return;
82
- }
83
- this.destroyed = true;
84
- this.connected = false;
85
- this.connectionAttempt += 1;
86
- this.clearContextClient();
87
- this.queryClientResolutionState = this.explicitClient
88
- ? 'bound'
89
- : 'pre-connect';
90
- this.onDisconnected();
91
- if ('removeController' in this.host) {
92
- this.host.removeController(this);
93
- }
94
- }
95
- tryGetQueryClient() {
96
- return this.explicitClient ?? this.contextClient;
97
- }
98
- getQueryClient() {
99
- const client = this.tryGetQueryClient();
100
- if (!client) {
101
- throw (0, context_js_1.createMissingQueryClientError)();
102
- }
103
- return client;
104
- }
105
- setResult(next) {
106
- if (Object.is(this.result, next)) {
107
- return;
108
- }
109
- this.result = next;
110
- if (!this.isHostUpdating) {
111
- this.queueUpdate();
112
- }
113
- }
114
- get current() {
115
- if (this.queryClientResolutionState === 'missing') {
116
- throw (0, context_js_1.createMissingQueryClientError)();
117
- }
118
- return this.result;
119
- }
120
- get connectedState() {
121
- return this.connected;
122
- }
123
- queueUpdate() {
124
- if (this.updateQueued) {
125
- return;
126
- }
127
- this.updateQueued = true;
128
- queueMicrotask(() => {
129
- this.updateQueued = false;
130
- if (!this.destroyed) {
131
- this.host.requestUpdate();
132
- }
133
- });
134
- }
135
- queueQueryClientChanged() {
136
- if (this.clientChangeQueued) {
137
- return;
138
- }
139
- this.clientChangeQueued = true;
140
- queueMicrotask(() => {
141
- this.clientChangeQueued = false;
142
- if (!this.destroyed) {
143
- this.onQueryClientChanged();
144
- }
145
- });
146
- }
147
- beginContextResolution() {
148
- this.clearContextClient();
149
- this.updateQueryClientResolutionState('awaiting-context');
150
- }
151
- queueContextResolution(attempt) {
152
- queueMicrotask(() => {
153
- if (this.destroyed ||
154
- !this.connected ||
155
- attempt !== this.connectionAttempt ||
156
- this.queryClientResolutionState !== 'awaiting-context') {
157
- return;
158
- }
159
- this.dispatchContextRequest(attempt);
160
- this.queueInitialContextResolutionCompletion(attempt);
161
- });
162
- }
163
- dispatchContextRequest(attempt) {
164
- if (!('dispatchEvent' in this.host)) {
165
- return;
166
- }
167
- const contextTarget = this.host;
168
- contextTarget.dispatchEvent(new context_1.ContextEvent(context_js_1.queryClientContext, contextTarget, (value, unsubscribe) => {
169
- if (this.destroyed ||
170
- !this.connected ||
171
- attempt !== this.connectionAttempt) {
172
- unsubscribe?.();
173
- return;
174
- }
175
- if (this.contextUnsubscribe &&
176
- this.contextUnsubscribe !== unsubscribe) {
177
- this.contextUnsubscribe();
178
- }
179
- const resolutionChanged = this.updateQueryClientResolutionState(value === undefined ? 'missing' : 'bound');
180
- const clientChanged = this.contextClient !== value;
181
- this.contextClient = value;
182
- this.contextUnsubscribe = unsubscribe;
183
- if (resolutionChanged || clientChanged) {
184
- this.queueUpdate();
185
- this.queueQueryClientChanged();
186
- }
187
- }, true));
188
- }
189
- queueInitialContextResolutionCompletion(attempt) {
190
- queueMicrotask(() => {
191
- if (this.destroyed ||
192
- !this.connected ||
193
- attempt !== this.connectionAttempt ||
194
- this.queryClientResolutionState !== 'awaiting-context') {
195
- return;
196
- }
197
- if (this.updateQueryClientResolutionState('missing')) {
198
- this.queueUpdate();
199
- this.queueQueryClientChanged();
200
- }
201
- });
202
- }
203
- clearContextClient() {
204
- this.contextUnsubscribe?.();
205
- this.contextUnsubscribe = undefined;
206
- this.contextClient = undefined;
207
- }
208
- updateQueryClientResolutionState(nextState) {
209
- if (this.queryClientResolutionState === nextState) {
210
- return false;
211
- }
212
- this.queryClientResolutionState = nextState;
213
- return true;
214
- }
215
- }
216
- exports.BaseController = BaseController;
217
- //# sourceMappingURL=BaseController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../../src/controllers/BaseController.ts"],"names":[],"mappings":"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"}