@beignet/react-query 0.0.1 → 0.0.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @beignet/react-query
2
2
 
3
+ ## 0.0.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [3160184]
8
+ - Updated dependencies [254ef6d]
9
+ - Updated dependencies [4cb1784]
10
+ - Updated dependencies [8bd9085]
11
+ - @beignet/core@0.0.3
12
+
13
+ ## 0.0.2
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [90b29ad]
18
+ - Updated dependencies [07fa19c]
19
+ - Updated dependencies [08bae67]
20
+ - Updated dependencies [730a818]
21
+ - Updated dependencies [a79f60c]
22
+ - @beignet/core@0.0.2
23
+
3
24
  ## 0.0.1
4
25
 
5
26
  - Initial Beignet release under the `@beignet` npm scope.
package/dist/index.d.ts CHANGED
@@ -1,20 +1,27 @@
1
1
  import type { Client, Endpoint, EndpointCallArgs, InferEndpointContractError, InferSuccessResponse } from "@beignet/core/client";
2
2
  import { type ContractLike, type HttpContractConfig, type ResolveContract } from "@beignet/core/contracts";
3
3
  import type { InfiniteQueryObserverOptions, MutationOptions, QueryKey, QueryOptions } from "@tanstack/react-query";
4
- /**
5
- * Options for useQuery hook
6
- */
7
4
  type HasRequiredKeys<T> = {
8
5
  [K in keyof T]-?: Record<string, never> extends Pick<T, K> ? never : K;
9
6
  }[keyof T];
10
7
  type EndpointQueryArgs<TContract extends HttpContractConfig, TProvidedHeaders extends string> = Omit<EndpointCallArgs<TContract, TProvidedHeaders>, "rawBody" | "signal">;
11
8
  type ContractQueryOptionsBase<TContract extends HttpContractConfig> = Omit<QueryOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, InferSuccessResponse<TContract>, QueryKey>, "queryKey" | "queryFn">;
9
+ /**
10
+ * Options accepted by `ReactQueryContractHelper.queryOptions(...)`.
11
+ *
12
+ * TanStack `queryKey` and `queryFn` are generated from the contract. Pass
13
+ * `key` to override the generated query key while keeping the generated query
14
+ * function.
15
+ */
12
16
  export type ContractUseQueryOptions<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> = EndpointQueryArgs<TContract, TProvidedHeaders> & {
13
17
  key?: readonly unknown[];
14
18
  } & ContractQueryOptionsBase<TContract>;
15
19
  type ContractQueryOptionsCallArgs<TContract extends HttpContractConfig, TProvidedHeaders extends string> = HasRequiredKeys<EndpointQueryArgs<TContract, TProvidedHeaders>> extends never ? [args?: ContractUseQueryOptions<TContract, TProvidedHeaders>] : [args: ContractUseQueryOptions<TContract, TProvidedHeaders>];
16
20
  /**
17
- * Options for useMutation hook
21
+ * Options accepted by `ReactQueryContractHelper.mutationOptions(...)`.
22
+ *
23
+ * TanStack `mutationFn` is generated from the contract endpoint, so callers pass
24
+ * the normal TanStack mutation lifecycle options.
18
25
  */
19
26
  export type ContractUseMutationOptions<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> = Omit<MutationOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, EndpointCallArgs<TContract, TProvidedHeaders>, unknown>, "mutationFn">;
20
27
  type InfiniteQueryResolvedParams<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> = {
@@ -43,15 +50,24 @@ type DynamicInfiniteQueryArgs<TContract extends HttpContractConfig, TPageParam,
43
50
  };
44
51
  type ContractInfiniteQueryOptions<TContract extends HttpContractConfig, TPageParam, TProvidedHeaders extends string> = (SafeInfiniteQueryArgs<TContract, TPageParam, TProvidedHeaders> | DynamicInfiniteQueryArgs<TContract, TPageParam, TProvidedHeaders>) & Omit<InfiniteQueryObserverOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, InferSuccessResponse<TContract>, QueryKey, TPageParam>, "queryKey" | "queryFn">;
45
52
  declare const BEIGNET_QUERY_KEY_SCOPE = "beignet";
53
+ /**
54
+ * Query key for all contracts in one Beignet namespace.
55
+ */
46
56
  export type ContractQueryNamespaceKey = readonly [
47
57
  typeof BEIGNET_QUERY_KEY_SCOPE,
48
58
  string | null
49
59
  ];
60
+ /**
61
+ * Query key for one contract without path/query/body params.
62
+ */
50
63
  export type ContractQueryContractKey = readonly [
51
64
  typeof BEIGNET_QUERY_KEY_SCOPE,
52
65
  string | null,
53
66
  string
54
67
  ];
68
+ /**
69
+ * Query key generated for one contract call.
70
+ */
55
71
  export type ContractQueryKey = readonly [
56
72
  typeof BEIGNET_QUERY_KEY_SCOPE,
57
73
  string | null,
@@ -59,7 +75,11 @@ export type ContractQueryKey = readonly [
59
75
  unknown?
60
76
  ];
61
77
  /**
62
- * React Query contract helper
78
+ * TanStack Query helper bound to one Beignet contract.
79
+ *
80
+ * The helper intentionally exposes TanStack Query options instead of hiding
81
+ * React Query. Query keys are stable and grouped by Beignet namespace so apps
82
+ * can invalidate a resource or a single contract.
63
83
  */
64
84
  export declare class ReactQueryContractHelper<TContract extends HttpContractConfig, TProvidedHeaders extends string = never> {
65
85
  private contract;
@@ -99,29 +119,39 @@ export declare class ReactQueryContractHelper<TContract extends HttpContractConf
99
119
  body?: unknown;
100
120
  }): ContractQueryKey;
101
121
  /**
102
- * Create query options for TanStack Query
103
- * This can be passed to useQuery, prefetchQuery, fetchQuery, etc.
122
+ * Create query options for TanStack Query.
123
+ *
124
+ * Pass the result to `useQuery`, `prefetchQuery`, `fetchQuery`, or any API
125
+ * that accepts query options.
104
126
  */
105
127
  queryOptions(...callArgs: ContractQueryOptionsCallArgs<TContract, TProvidedHeaders>): QueryOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, InferSuccessResponse<TContract>, QueryKey> & {
106
128
  queryKey: QueryKey;
107
129
  };
108
130
  /**
109
- * Create mutation options for TanStack Query
110
- * This can be passed to useMutation
131
+ * Create mutation options for TanStack Query.
132
+ *
133
+ * The generated `mutationFn` accepts the same variables shape as the
134
+ * underlying contract endpoint call.
111
135
  */
112
136
  mutationOptions(args?: Omit<MutationOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, EndpointCallArgs<TContract, TProvidedHeaders>, unknown>, "mutationFn">): MutationOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, EndpointCallArgs<TContract, TProvidedHeaders>, unknown>;
113
137
  /**
114
- * Create infinite query options for TanStack Query
115
- * This can be passed to useInfiniteQuery
138
+ * Create infinite query options for TanStack Query.
139
+ *
140
+ * Use static `path`/`query` with `page(...)` when page params can be merged
141
+ * into a stable key. Use `params(...)` with an explicit `key` when every page
142
+ * needs fully dynamic args.
116
143
  */
117
144
  infiniteQueryOptions<TPageParam = unknown>(args: ContractInfiniteQueryOptions<TContract, TPageParam, TProvidedHeaders>): InfiniteQueryObserverOptions<InferSuccessResponse<TContract>, InferEndpointContractError<TContract>, InferSuccessResponse<TContract>, QueryKey, TPageParam>;
118
145
  /**
119
- * Access to the underlying endpoint
146
+ * Access the underlying contract endpoint.
120
147
  */
121
148
  get endpoint(): Endpoint<TContract, TProvidedHeaders>;
122
149
  }
123
150
  /**
124
- * Create React Query adapter for a client
151
+ * Create a React Query adapter for a Beignet client.
152
+ *
153
+ * Create this once near client setup, then bind contracts with the returned
154
+ * `rq(contract)` function.
125
155
  */
126
156
  export declare function createReactQuery<TProvidedHeaders extends string = never>(client: Client<TProvidedHeaders>): <TContractLike extends ContractLike>(contract: TContractLike) => ReactQueryContractHelper<ResolveContract<TContractLike>, TProvidedHeaders>;
127
157
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -26,7 +26,11 @@ function normalizeKeyValue(value) {
26
26
  const BEIGNET_QUERY_KEY_SCOPE = "beignet";
27
27
  const UNNAMESPACED_QUERY_KEY_NAMESPACE = null;
28
28
  /**
29
- * React Query contract helper
29
+ * TanStack Query helper bound to one Beignet contract.
30
+ *
31
+ * The helper intentionally exposes TanStack Query options instead of hiding
32
+ * React Query. Query keys are stable and grouped by Beignet namespace so apps
33
+ * can invalidate a resource or a single contract.
30
34
  */
31
35
  export class ReactQueryContractHelper {
32
36
  contract;
@@ -90,8 +94,10 @@ export class ReactQueryContractHelper {
90
94
  return [...this.contractKey(), cleanParams];
91
95
  }
92
96
  /**
93
- * Create query options for TanStack Query
94
- * This can be passed to useQuery, prefetchQuery, fetchQuery, etc.
97
+ * Create query options for TanStack Query.
98
+ *
99
+ * Pass the result to `useQuery`, `prefetchQuery`, `fetchQuery`, or any API
100
+ * that accepts query options.
95
101
  */
96
102
  queryOptions(...callArgs) {
97
103
  const args = (callArgs[0] ?? {});
@@ -113,8 +119,10 @@ export class ReactQueryContractHelper {
113
119
  };
114
120
  }
115
121
  /**
116
- * Create mutation options for TanStack Query
117
- * This can be passed to useMutation
122
+ * Create mutation options for TanStack Query.
123
+ *
124
+ * The generated `mutationFn` accepts the same variables shape as the
125
+ * underlying contract endpoint call.
118
126
  */
119
127
  mutationOptions(args = {}) {
120
128
  const mutationFn = async (vars) => {
@@ -126,8 +134,11 @@ export class ReactQueryContractHelper {
126
134
  };
127
135
  }
128
136
  /**
129
- * Create infinite query options for TanStack Query
130
- * This can be passed to useInfiniteQuery
137
+ * Create infinite query options for TanStack Query.
138
+ *
139
+ * Use static `path`/`query` with `page(...)` when page params can be merged
140
+ * into a stable key. Use `params(...)` with an explicit `key` when every page
141
+ * needs fully dynamic args.
131
142
  */
132
143
  infiniteQueryOptions(args) {
133
144
  let queryKey;
@@ -171,14 +182,17 @@ export class ReactQueryContractHelper {
171
182
  };
172
183
  }
173
184
  /**
174
- * Access to the underlying endpoint
185
+ * Access the underlying contract endpoint.
175
186
  */
176
187
  get endpoint() {
177
188
  return this._endpoint;
178
189
  }
179
190
  }
180
191
  /**
181
- * Create React Query adapter for a client
192
+ * Create a React Query adapter for a Beignet client.
193
+ *
194
+ * Create this once near client setup, then bind contracts with the returned
195
+ * `rq(contract)` function.
182
196
  */
183
197
  export function createReactQuery(client) {
184
198
  return function rq(contract) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beignet/react-query",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "type": "module",
5
5
  "description": "TanStack Query integration for Beignet",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -19,9 +19,6 @@ import type {
19
19
  QueryOptions,
20
20
  } from "@tanstack/react-query";
21
21
 
22
- /**
23
- * Options for useQuery hook
24
- */
25
22
  type HasRequiredKeys<T> = {
26
23
  [K in keyof T]-?: Record<string, never> extends Pick<T, K> ? never : K;
27
24
  }[keyof T];
@@ -41,6 +38,13 @@ type ContractQueryOptionsBase<TContract extends HttpContractConfig> = Omit<
41
38
  "queryKey" | "queryFn"
42
39
  >;
43
40
 
41
+ /**
42
+ * Options accepted by `ReactQueryContractHelper.queryOptions(...)`.
43
+ *
44
+ * TanStack `queryKey` and `queryFn` are generated from the contract. Pass
45
+ * `key` to override the generated query key while keeping the generated query
46
+ * function.
47
+ */
44
48
  export type ContractUseQueryOptions<
45
49
  TContract extends HttpContractConfig,
46
50
  TProvidedHeaders extends string = never,
@@ -57,7 +61,10 @@ type ContractQueryOptionsCallArgs<
57
61
  : [args: ContractUseQueryOptions<TContract, TProvidedHeaders>];
58
62
 
59
63
  /**
60
- * Options for useMutation hook
64
+ * Options accepted by `ReactQueryContractHelper.mutationOptions(...)`.
65
+ *
66
+ * TanStack `mutationFn` is generated from the contract endpoint, so callers pass
67
+ * the normal TanStack mutation lifecycle options.
61
68
  */
62
69
  export type ContractUseMutationOptions<
63
70
  TContract extends HttpContractConfig,
@@ -159,17 +166,26 @@ function normalizeKeyValue(value: unknown): unknown | undefined {
159
166
  const BEIGNET_QUERY_KEY_SCOPE = "beignet";
160
167
  const UNNAMESPACED_QUERY_KEY_NAMESPACE = null;
161
168
 
169
+ /**
170
+ * Query key for all contracts in one Beignet namespace.
171
+ */
162
172
  export type ContractQueryNamespaceKey = readonly [
163
173
  typeof BEIGNET_QUERY_KEY_SCOPE,
164
174
  string | null,
165
175
  ];
166
176
 
177
+ /**
178
+ * Query key for one contract without path/query/body params.
179
+ */
167
180
  export type ContractQueryContractKey = readonly [
168
181
  typeof BEIGNET_QUERY_KEY_SCOPE,
169
182
  string | null,
170
183
  string,
171
184
  ];
172
185
 
186
+ /**
187
+ * Query key generated for one contract call.
188
+ */
173
189
  export type ContractQueryKey = readonly [
174
190
  typeof BEIGNET_QUERY_KEY_SCOPE,
175
191
  string | null,
@@ -178,7 +194,11 @@ export type ContractQueryKey = readonly [
178
194
  ];
179
195
 
180
196
  /**
181
- * React Query contract helper
197
+ * TanStack Query helper bound to one Beignet contract.
198
+ *
199
+ * The helper intentionally exposes TanStack Query options instead of hiding
200
+ * React Query. Query keys are stable and grouped by Beignet namespace so apps
201
+ * can invalidate a resource or a single contract.
182
202
  */
183
203
  export class ReactQueryContractHelper<
184
204
  TContract extends HttpContractConfig,
@@ -253,8 +273,10 @@ export class ReactQueryContractHelper<
253
273
  }
254
274
 
255
275
  /**
256
- * Create query options for TanStack Query
257
- * This can be passed to useQuery, prefetchQuery, fetchQuery, etc.
276
+ * Create query options for TanStack Query.
277
+ *
278
+ * Pass the result to `useQuery`, `prefetchQuery`, `fetchQuery`, or any API
279
+ * that accepts query options.
258
280
  */
259
281
  queryOptions(
260
282
  ...callArgs: ContractQueryOptionsCallArgs<TContract, TProvidedHeaders>
@@ -295,8 +317,10 @@ export class ReactQueryContractHelper<
295
317
  }
296
318
 
297
319
  /**
298
- * Create mutation options for TanStack Query
299
- * This can be passed to useMutation
320
+ * Create mutation options for TanStack Query.
321
+ *
322
+ * The generated `mutationFn` accepts the same variables shape as the
323
+ * underlying contract endpoint call.
300
324
  */
301
325
  mutationOptions(
302
326
  args: Omit<
@@ -332,8 +356,11 @@ export class ReactQueryContractHelper<
332
356
  }
333
357
 
334
358
  /**
335
- * Create infinite query options for TanStack Query
336
- * This can be passed to useInfiniteQuery
359
+ * Create infinite query options for TanStack Query.
360
+ *
361
+ * Use static `path`/`query` with `page(...)` when page params can be merged
362
+ * into a stable key. Use `params(...)` with an explicit `key` when every page
363
+ * needs fully dynamic args.
337
364
  */
338
365
  infiniteQueryOptions<TPageParam = unknown>(
339
366
  args: ContractInfiniteQueryOptions<TContract, TPageParam, TProvidedHeaders>,
@@ -404,7 +431,7 @@ export class ReactQueryContractHelper<
404
431
  }
405
432
 
406
433
  /**
407
- * Access to the underlying endpoint
434
+ * Access the underlying contract endpoint.
408
435
  */
409
436
  get endpoint(): Endpoint<TContract, TProvidedHeaders> {
410
437
  return this._endpoint;
@@ -412,7 +439,10 @@ export class ReactQueryContractHelper<
412
439
  }
413
440
 
414
441
  /**
415
- * Create React Query adapter for a client
442
+ * Create a React Query adapter for a Beignet client.
443
+ *
444
+ * Create this once near client setup, then bind contracts with the returned
445
+ * `rq(contract)` function.
416
446
  */
417
447
  export function createReactQuery<TProvidedHeaders extends string = never>(
418
448
  client: Client<TProvidedHeaders>,