@openapi-qraft/react 1.0.0-beta.4 → 1.0.0-beta.5

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,12 @@
1
1
  # @openapi-qraft/react
2
2
 
3
+ ## 1.0.0-beta.5
4
+
5
+ ### Patch Changes
6
+
7
+ - cd66c2e: feature: add support of `useSuspenseQuery(..)` hook
8
+ - 1b93dc7: feature: add support of `useSuspenseInfiniteQuery(..)` hook
9
+
3
10
  ## 1.0.0-beta.4
4
11
 
5
12
  ### Patch Changes
package/README.md CHANGED
@@ -318,6 +318,13 @@ infiniteQuery.fetchNextPage();
318
318
  infiniteQuery.fetchPreviousPage();
319
319
  ```
320
320
 
321
+ ### Suspense Queries
322
+
323
+ Supported Suspense Queries are:
324
+
325
+ - [useSuspenseQuery 🔗](https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseQuery)
326
+ - [useSuspenseInfiniteQuery 🔗](https://tanstack.com/query/latest/docs/framework/react/reference/useSuspenseInfiniteQuery)
327
+
321
328
  ## Contributing
322
329
 
323
330
  Contributions are welcome! If you have suggestions or want to improve `@openapi-qraft/react`, please feel free to submit
@@ -1,5 +1,5 @@
1
- import { DefaultError, InfiniteData, QueryClient, InfiniteQueryPageParamsOptions, NoInfer, SetDataOptions, Updater } from '@tanstack/query-core';
2
- import type { DefinedInitialDataInfiniteOptions, DefinedInitialDataOptions, DefinedUseInfiniteQueryResult, DefinedUseQueryResult, UndefinedInitialDataInfiniteOptions, UndefinedInitialDataOptions, UseInfiniteQueryResult, UseMutationOptions, UseMutationResult, UseQueryResult } from '@tanstack/react-query';
1
+ import { DefaultError, InfiniteData, InfiniteQueryPageParamsOptions, NoInfer, QueryClient, SetDataOptions, Updater } from '@tanstack/query-core';
2
+ import { DefinedInitialDataInfiniteOptions, DefinedInitialDataOptions, DefinedUseInfiniteQueryResult, DefinedUseQueryResult, UndefinedInitialDataInfiniteOptions, UndefinedInitialDataOptions, UseInfiniteQueryResult, UseMutationOptions, UseMutationResult, UseQueryResult, UseSuspenseInfiniteQueryOptions, UseSuspenseInfiniteQueryResult, UseSuspenseQueryOptions, UseSuspenseQueryResult } from '@tanstack/react-query';
3
3
  export type ServiceOperationQueryKey<S extends {
4
4
  url: string;
5
5
  }, T> = [
@@ -18,7 +18,7 @@ export type ServiceOperationMutationKey<S extends Record<'url' | 'method', strin
18
18
  export interface ServiceOperationQuery<TSchema extends {
19
19
  url: string;
20
20
  method: string;
21
- }, TData, TParams, TError = DefaultError> extends ServiceOperationUseQuery<TSchema, TData, TParams, TError>, ServiceOperationUseInfiniteQuery<TSchema, TData, TParams, TError>, ServiceOperationQueryFn<TSchema, TData, TParams>, ServiceOperationGetQueryData<TData, TParams>, ServiceOperationGetInfiniteQueryData<TData, TParams>, ServiceOperationSetQueryData<TData, TParams>, ServiceOperationSetInfiniteQueryData<TData, TParams> {
21
+ }, TData, TParams, TError = DefaultError> extends ServiceOperationUseQuery<TSchema, TData, TParams, TError>, ServiceOperationUseInfiniteQuery<TSchema, TData, TParams, TError>, ServiceOperationUseSuspenseQueryQuery<TSchema, TData, TParams, TError>, ServiceOperationUseSuspenseInfiniteQuery<TSchema, TData, TParams, TError>, ServiceOperationQueryFn<TSchema, TData, TParams>, ServiceOperationGetQueryData<TData, TParams>, ServiceOperationGetInfiniteQueryData<TData, TParams>, ServiceOperationSetQueryData<TData, TParams>, ServiceOperationSetInfiniteQueryData<TData, TParams> {
22
22
  schema: TSchema;
23
23
  }
24
24
  interface ServiceOperationUseQuery<TSchema extends {
@@ -40,6 +40,18 @@ interface ServiceOperationUseInfiniteQuery<TSchema extends {
40
40
  useInfiniteQuery<TPageParam extends TParams>(params: TParams, options: Omit<UndefinedInitialDataInfiniteOptions<TData, TError, InfiniteData<TData>, ServiceOperationInfiniteQueryKey<TSchema, TParams> | readonly [...ServiceOperationInfiniteQueryKey<TSchema, TParams>], PartialParams<TPageParam>>, 'queryKey' | 'getPreviousPageParam' | 'getNextPageParam' | 'initialPageParam'> & InfiniteQueryPageParamsOptions<TData, PartialParams<TPageParam>>, queryClient?: QueryClient): UseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
41
41
  useInfiniteQuery<TPageParam extends TParams>(params: TParams, options: Omit<DefinedInitialDataInfiniteOptions<TData, TError, InfiniteData<TData>, ServiceOperationInfiniteQueryKey<TSchema, TParams> | readonly [...ServiceOperationInfiniteQueryKey<TSchema, TParams>], PartialParams<TPageParam>>, 'queryKey' | 'getPreviousPageParam' | 'getNextPageParam' | 'initialPageParam'> & InfiniteQueryPageParamsOptions<TData, PartialParams<TPageParam>>, queryClient?: QueryClient): DefinedUseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
42
42
  }
43
+ interface ServiceOperationUseSuspenseInfiniteQuery<TSchema extends {
44
+ url: string;
45
+ method: string;
46
+ }, TData, TParams = {}, TError = DefaultError> {
47
+ useSuspenseInfiniteQuery<TPageParam extends TParams>(params: TParams, options: Omit<UseSuspenseInfiniteQueryOptions<TData, TError, InfiniteData<TData>, TData, ServiceOperationInfiniteQueryKey<TSchema, TParams> | readonly [...ServiceOperationInfiniteQueryKey<TSchema, TParams>], PartialParams<TPageParam>>, 'queryKey' | 'getPreviousPageParam' | 'getNextPageParam' | 'initialPageParam'> & InfiniteQueryPageParamsOptions<TData, PartialParams<TPageParam>>, queryClient?: QueryClient): UseSuspenseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
48
+ }
49
+ interface ServiceOperationUseSuspenseQueryQuery<TSchema extends {
50
+ url: string;
51
+ method: string;
52
+ }, TData, TParams = {}, TError = DefaultError> {
53
+ useSuspenseQuery(params: TParams, options?: Omit<UseSuspenseQueryOptions<TData, TError, TData, ServiceOperationQueryKey<TSchema, TParams> | readonly [...ServiceOperationQueryKey<TSchema, TParams>]>, 'queryKey'>, queryClient?: QueryClient): UseSuspenseQueryResult<TData, TError | Error>;
54
+ }
43
55
  export interface ServiceOperationMutation<TSchema extends {
44
56
  url: string;
45
57
  method: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceOperation.d.ts","sourceRoot":"","sources":["../src/ServiceOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceOperation.d.ts","sourceRoot":"","sources":["../src/ServiceOperation.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,4 @@ import type { QraftClientOptions } from '../qraftAPIClient.js';
4
4
  import type { RequestClientSchema } from '../RequestClient.js';
5
5
  import { ServiceOperationQuery } from '../ServiceOperation.js';
6
6
  export declare const useInfiniteQuery: <TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>>(qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: Parameters<ServiceOperationQuery<RequestClientSchema, unknown, unknown>['useInfiniteQuery']>) => UseInfiniteQueryResult<TData, TError>;
7
- /**
8
- * Merges objects with provided depth
9
- * @param depth
10
- * @param args
11
- */
12
- export declare function shelfMerge<T>(depth?: number, ...args: T[]): T;
13
7
  //# sourceMappingURL=useInfiniteQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/callbacks/useInfiniteQuery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAEL,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,gBAAgB,EAAE,CAC7B,YAAY,EACZ,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,EAElC,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,UAAU,CACd,qBAAqB,CACnB,mBAAmB,EACnB,OAAO,EACP,OAAO,CACR,CAAC,kBAAkB,CAAC,CACtB,KACE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAwBxC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,SAAI,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CA6BxD"}
1
+ {"version":3,"file":"useInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/callbacks/useInfiniteQuery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAEL,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,eAAO,MAAM,gBAAgB,EAAE,CAC7B,YAAY,EACZ,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,EAElC,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,UAAU,CACd,qBAAqB,CACnB,mBAAmB,EACnB,OAAO,EACP,OAAO,CACR,CAAC,kBAAkB,CAAC,CACtB,KACE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAwBxC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
  import { useContext } from 'react';
3
3
  import { useInfiniteQuery as useInfiniteQueryBase, } from '@tanstack/react-query';
4
+ import { shelfMerge } from '../lib/shelfMerge.js';
4
5
  import { QraftContext } from '../QraftContext.js';
5
6
  export const useInfiniteQuery = (qraftOptions, schema, args) => {
6
7
  const [params, options, ...restArgs] = args;
@@ -21,31 +22,4 @@ export const useInfiniteQuery = (qraftOptions, schema, args) => {
21
22
  },
22
23
  }, ...restArgs);
23
24
  };
24
- /**
25
- * Merges objects with provided depth
26
- * @param depth
27
- * @param args
28
- */
29
- export function shelfMerge(depth = 2, ...args) {
30
- return args.reduce((acc, arg) => {
31
- if (!arg || typeof arg !== 'object')
32
- return acc;
33
- Object.entries(arg).forEach(([key, value]) => {
34
- if (typeof value !== 'object') {
35
- acc[key] = value;
36
- return;
37
- }
38
- if (Array.isArray(value)) {
39
- acc[key] = value;
40
- return;
41
- }
42
- if (depth > 1) {
43
- acc[key] = shelfMerge(depth - 1, acc[key], value);
44
- return;
45
- }
46
- acc[key] = value;
47
- });
48
- return acc;
49
- }, {});
50
- }
51
25
  //# sourceMappingURL=useInfiniteQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInfiniteQuery.js","sourceRoot":"","sources":["../../src/callbacks/useInfiniteQuery.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EACL,gBAAgB,IAAI,oBAAoB,GAEzC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,gBAAgB,GAcgB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC1E,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IAE5C,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC;QACrE,EAAE,aAAa,CAAC;IAElB,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE5E,OAAO,oBAAoB,CACzB;QACE,GAAG,OAAO;QACV,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAe,CAAU;QACzE,OAAO,EACL,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9D,OAAO,aAAa,CAAC,MAAM,EAAE;oBAC3B,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAU;oBAC1D,MAAM;oBACN,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;KACJ,EACD,GAAG,QAAQ,CACH,CAAC;AACb,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAI,KAAK,GAAG,CAAC,EAAE,GAAG,IAAS;IACnD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QAEhD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,GAAY,CAAC,GAAG,UAAU,CAC5B,KAAK,GAAG,CAAC,EACT,GAAG,CAAC,GAAY,CAAC,EACjB,KAAK,CACG,CAAC;gBACX,OAAO;YACT,CAAC;YAED,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAO,CAAC,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"useInfiniteQuery.js","sourceRoot":"","sources":["../../src/callbacks/useInfiniteQuery.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EACL,gBAAgB,IAAI,oBAAoB,GAEzC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,CAAC,MAAM,gBAAgB,GAcgB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IAC1E,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IAE5C,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC;QACrE,EAAE,aAAa,CAAC;IAElB,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE5E,OAAO,oBAAoB,CACzB;QACE,GAAG,OAAO;QACV,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAe,CAAU;QACzE,OAAO,EACL,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9D,OAAO,aAAa,CAAC,MAAM,EAAE;oBAC3B,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAU;oBAC1D,MAAM;oBACN,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;KACJ,EACD,GAAG,QAAQ,CACH,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DefaultError, InfiniteData } from '@tanstack/query-core';
2
+ import { UseSuspenseInfiniteQueryResult } from '@tanstack/react-query';
3
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
4
+ import type { RequestClientSchema } from '../RequestClient.js';
5
+ import { ServiceOperationQuery, ServiceOperationQueryKey } from '../ServiceOperation.js';
6
+ export declare const useSuspenseInfiniteQuery: <TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>>(qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: Parameters<ServiceOperationQuery<RequestClientSchema, unknown, unknown>['useSuspenseInfiniteQuery']>) => UseSuspenseInfiniteQueryResult<TData, TError> & {
7
+ queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown>;
8
+ };
9
+ //# sourceMappingURL=useSuspenseInfiniteQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuspenseInfiniteQuery.d.ts","sourceRoot":"","sources":["../../src/callbacks/useSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAEL,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,wBAAwB,EAAE,CACrC,YAAY,EACZ,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,EAElC,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,UAAU,CACd,qBAAqB,CACnB,mBAAmB,EACnB,OAAO,EACP,OAAO,CACR,CAAC,0BAA0B,CAAC,CAC9B,KACE,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IACnD,QAAQ,EAAE,wBAAwB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;CAyBlE,CAAC"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { useContext } from 'react';
3
+ import { useSuspenseInfiniteQuery as useSuspenseInfiniteQueryTanstack, } from '@tanstack/react-query';
4
+ import { shelfMerge } from '../lib/shelfMerge.js';
5
+ import { QraftContext } from '../QraftContext.js';
6
+ export const useSuspenseInfiniteQuery = (qraftOptions, schema, args) => {
7
+ const [params, options, ...restArgs] = args;
8
+ const requestClient = useContext(qraftOptions?.context ?? QraftContext)
9
+ ?.requestClient;
10
+ if (!requestClient)
11
+ throw new Error(`QraftContext.requestClient not found`);
12
+ return useSuspenseInfiniteQueryTanstack({
13
+ ...options,
14
+ queryKey: [{ url: schema.url, infinite: true }, params],
15
+ queryFn: options?.queryFn ??
16
+ function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
17
+ return requestClient(schema, {
18
+ parameters: shelfMerge(2, queryParams, pageParam),
19
+ signal,
20
+ meta,
21
+ });
22
+ },
23
+ }, ...restArgs);
24
+ };
25
+ //# sourceMappingURL=useSuspenseInfiniteQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuspenseInfiniteQuery.js","sourceRoot":"","sources":["../../src/callbacks/useSuspenseInfiniteQuery.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EACL,wBAAwB,IAAI,gCAAgC,GAE7D,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,MAAM,CAAC,MAAM,wBAAwB,GAgBjC,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IACjC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IAE5C,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC;QACrE,EAAE,aAAa,CAAC;IAElB,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE5E,OAAO,gCAAgC,CACrC;QACE,GAAG,OAAO;QACV,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAe,CAAU;QACzE,OAAO,EACL,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9D,OAAO,aAAa,CAAC,MAAM,EAAE;oBAC3B,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAU;oBAC1D,MAAM;oBACN,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;KACJ,EACD,GAAG,QAAQ,CACH,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DefaultError } from '@tanstack/query-core';
2
+ import { UseQueryResult } from '@tanstack/react-query';
3
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
4
+ import type { RequestClientSchema } from '../RequestClient.js';
5
+ import { ServiceOperationQuery, ServiceOperationQueryKey } from '../ServiceOperation.js';
6
+ export declare const useSuspenseQuery: <TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData>(qraftOptions: QraftClientOptions | undefined, schema: RequestClientSchema, args: Parameters<ServiceOperationQuery<RequestClientSchema, unknown, unknown>['useSuspenseQuery']>) => UseQueryResult<TData, TError> & {
7
+ queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown>;
8
+ };
9
+ //# sourceMappingURL=useSuspenseQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuspenseQuery.d.ts","sourceRoot":"","sources":["../../src/callbacks/useSuspenseQuery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,gBAAgB,EAAE,CAC7B,YAAY,GAAG,OAAO,EACtB,MAAM,GAAG,YAAY,EACrB,KAAK,GAAG,YAAY,EAEpB,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,UAAU,CACd,qBAAqB,CACnB,mBAAmB,EACnB,OAAO,EACP,OAAO,CACR,CAAC,kBAAkB,CAAC,CACtB,KACE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG;IACnC,QAAQ,EAAE,wBAAwB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;CA8BlE,CAAC"}
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ import { useContext } from 'react';
3
+ import { useSuspenseQuery as useSuspenseQueryTanstack, } from '@tanstack/react-query';
4
+ import { QraftContext } from '../QraftContext.js';
5
+ export const useSuspenseQuery = (qraftOptions, schema, args) => {
6
+ const [params, options, ...restArgs] = args;
7
+ const requestClient = useContext(qraftOptions?.context ?? QraftContext)
8
+ ?.requestClient;
9
+ if (!requestClient)
10
+ throw new Error(`QraftContext.requestClient not found`);
11
+ const queryKey = [
12
+ { url: schema.url },
13
+ params,
14
+ ];
15
+ return useSuspenseQueryTanstack({
16
+ ...options,
17
+ queryKey,
18
+ queryFn: options?.queryFn ??
19
+ function ({ queryKey: [, queryParams], signal, meta }) {
20
+ return requestClient(schema, {
21
+ parameters: queryParams,
22
+ signal,
23
+ meta,
24
+ });
25
+ },
26
+ }, ...restArgs);
27
+ };
28
+ //# sourceMappingURL=useSuspenseQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuspenseQuery.js","sourceRoot":"","sources":["../../src/callbacks/useSuspenseQuery.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGnC,OAAO,EAEL,gBAAgB,IAAI,wBAAwB,GAC7C,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,MAAM,CAAC,MAAM,gBAAgB,GAgBzB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;IACjC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC;IAE5C,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,IAAI,YAAY,CAAC;QACrE,EAAE,aAAa,CAAC;IAElB,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE5E,MAAM,QAAQ,GAA2D;QACvE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;QACnB,MAAM;KACP,CAAC;IAEF,OAAO,wBAAwB,CAC7B;QACE,GAAG,OAAO;QACV,QAAQ;QACR,OAAO,EACL,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;gBACnD,OAAO,aAAa,CAAC,MAAM,EAAE;oBAC3B,UAAU,EAAE,WAAoB;oBAChC,MAAM;oBACN,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;KACJ,EACD,GAAG,QAAQ,CACH,CAAC;AACb,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Merges objects with provided depth
3
+ * @param depth
4
+ * @param args
5
+ */
6
+ export declare function shelfMerge<T>(depth?: number, ...args: T[]): T;
7
+ //# sourceMappingURL=shelfMerge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shelfMerge.d.ts","sourceRoot":"","sources":["../../src/lib/shelfMerge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,SAAI,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CA6BxD"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Merges objects with provided depth
3
+ * @param depth
4
+ * @param args
5
+ */
6
+ export function shelfMerge(depth = 2, ...args) {
7
+ return args.reduce((acc, arg) => {
8
+ if (!arg || typeof arg !== 'object')
9
+ return acc;
10
+ Object.entries(arg).forEach(([key, value]) => {
11
+ if (typeof value !== 'object') {
12
+ acc[key] = value;
13
+ return;
14
+ }
15
+ if (Array.isArray(value)) {
16
+ acc[key] = value;
17
+ return;
18
+ }
19
+ if (depth > 1) {
20
+ acc[key] = shelfMerge(depth - 1, acc[key], value);
21
+ return;
22
+ }
23
+ acc[key] = value;
24
+ });
25
+ return acc;
26
+ }, {});
27
+ }
28
+ //# sourceMappingURL=shelfMerge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shelfMerge.js","sourceRoot":"","sources":["../../src/lib/shelfMerge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAI,KAAK,GAAG,CAAC,EAAE,GAAG,IAAS;IACnD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QAEhD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,GAAY,CAAC,GAAG,UAAU,CAC5B,KAAK,GAAG,CAAC,EACT,GAAG,CAAC,GAAY,CAAC,EACjB,KAAK,CACG,CAAC;gBACX,OAAO;YACT,CAAC;YAED,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAO,CAAC,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openapi-qraft/react",
3
- "version": "1.0.0-beta.4",
3
+ "version": "1.0.0-beta.5",
4
4
  "description": "API client for React, providing type-safe requests and dynamic Tanstack Query React Hooks via a modular, Proxy-based architecture.",
5
5
  "scripts": {
6
6
  "build": "rimraf dist/ && tsc --project tsconfig.build.json",
@@ -13,7 +13,7 @@
13
13
  "type": "module",
14
14
  "sideEffects": false,
15
15
  "devDependencies": {
16
- "@openapi-qraft/cli": "~1.0.0-beta.2",
16
+ "@openapi-qraft/cli": "~1.0.0-beta.3",
17
17
  "@openapi-qraft/openapi-typescript": "^1.0.0-beta.1",
18
18
  "@tanstack/react-query": "^5.17.3",
19
19
  "@testing-library/jest-dom": "^5.17.0",
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  DefaultError,
3
3
  InfiniteData,
4
- QueryClient,
5
4
  InfiniteQueryPageParamsOptions,
6
5
  NoInfer,
6
+ QueryClient,
7
7
  SetDataOptions,
8
8
  Updater,
9
9
  } from '@tanstack/query-core';
10
- import type {
10
+ import {
11
11
  DefinedInitialDataInfiniteOptions,
12
12
  DefinedInitialDataOptions,
13
13
  DefinedUseInfiniteQueryResult,
@@ -18,6 +18,10 @@ import type {
18
18
  UseMutationOptions,
19
19
  UseMutationResult,
20
20
  UseQueryResult,
21
+ UseSuspenseInfiniteQueryOptions,
22
+ UseSuspenseInfiniteQueryResult,
23
+ UseSuspenseQueryOptions,
24
+ UseSuspenseQueryResult,
21
25
  } from '@tanstack/react-query';
22
26
 
23
27
  export type ServiceOperationQueryKey<S extends { url: string }, T> = [
@@ -42,6 +46,8 @@ export interface ServiceOperationQuery<
42
46
  TError = DefaultError,
43
47
  > extends ServiceOperationUseQuery<TSchema, TData, TParams, TError>,
44
48
  ServiceOperationUseInfiniteQuery<TSchema, TData, TParams, TError>,
49
+ ServiceOperationUseSuspenseQueryQuery<TSchema, TData, TParams, TError>,
50
+ ServiceOperationUseSuspenseInfiniteQuery<TSchema, TData, TParams, TError>,
45
51
  ServiceOperationQueryFn<TSchema, TData, TParams>,
46
52
  ServiceOperationGetQueryData<TData, TParams>,
47
53
  ServiceOperationGetInfiniteQueryData<TData, TParams>,
@@ -144,6 +150,56 @@ interface ServiceOperationUseInfiniteQuery<
144
150
  ): DefinedUseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
145
151
  }
146
152
 
153
+ interface ServiceOperationUseSuspenseInfiniteQuery<
154
+ TSchema extends { url: string; method: string },
155
+ TData,
156
+ TParams = {},
157
+ TError = DefaultError,
158
+ > {
159
+ useSuspenseInfiniteQuery<TPageParam extends TParams>(
160
+ params: TParams,
161
+ options: Omit<
162
+ UseSuspenseInfiniteQueryOptions<
163
+ TData,
164
+ TError,
165
+ InfiniteData<TData>,
166
+ TData,
167
+ | ServiceOperationInfiniteQueryKey<TSchema, TParams>
168
+ | readonly [...ServiceOperationInfiniteQueryKey<TSchema, TParams>],
169
+ PartialParams<TPageParam>
170
+ >,
171
+ | 'queryKey'
172
+ | 'getPreviousPageParam'
173
+ | 'getNextPageParam'
174
+ | 'initialPageParam'
175
+ > &
176
+ InfiniteQueryPageParamsOptions<TData, PartialParams<TPageParam>>,
177
+ queryClient?: QueryClient
178
+ ): UseSuspenseInfiniteQueryResult<InfiniteData<TData>, TError | Error>;
179
+ }
180
+
181
+ interface ServiceOperationUseSuspenseQueryQuery<
182
+ TSchema extends { url: string; method: string },
183
+ TData,
184
+ TParams = {},
185
+ TError = DefaultError,
186
+ > {
187
+ useSuspenseQuery(
188
+ params: TParams,
189
+ options?: Omit<
190
+ UseSuspenseQueryOptions<
191
+ TData,
192
+ TError,
193
+ TData,
194
+ | ServiceOperationQueryKey<TSchema, TParams>
195
+ | readonly [...ServiceOperationQueryKey<TSchema, TParams>]
196
+ >,
197
+ 'queryKey'
198
+ >,
199
+ queryClient?: QueryClient
200
+ ): UseSuspenseQueryResult<TData, TError | Error>;
201
+ }
202
+
147
203
  export interface ServiceOperationMutation<
148
204
  TSchema extends { url: string; method: string },
149
205
  TBody,
@@ -8,6 +8,7 @@ import {
8
8
  UseInfiniteQueryResult,
9
9
  } from '@tanstack/react-query';
10
10
 
11
+ import { shelfMerge } from '../lib/shelfMerge.js';
11
12
  import type { QraftClientOptions } from '../qraftAPIClient.js';
12
13
  import { QraftContext } from '../QraftContext.js';
13
14
  import type { RequestClientSchema } from '../RequestClient.js';
@@ -52,39 +53,3 @@ export const useInfiniteQuery: <
52
53
  ...restArgs
53
54
  ) as never;
54
55
  };
55
-
56
- /**
57
- * Merges objects with provided depth
58
- * @param depth
59
- * @param args
60
- */
61
- export function shelfMerge<T>(depth = 2, ...args: T[]): T {
62
- return args.reduce((acc, arg) => {
63
- if (!arg || typeof arg !== 'object') return acc;
64
-
65
- Object.entries(arg).forEach(([key, value]) => {
66
- if (typeof value !== 'object') {
67
- acc[key as never] = value as never;
68
- return;
69
- }
70
-
71
- if (Array.isArray(value)) {
72
- acc[key as never] = value as never;
73
- return;
74
- }
75
-
76
- if (depth > 1) {
77
- acc[key as never] = shelfMerge(
78
- depth - 1,
79
- acc[key as never],
80
- value
81
- ) as never;
82
- return;
83
- }
84
-
85
- acc[key as never] = value as never;
86
- });
87
-
88
- return acc;
89
- }, {} as T);
90
- }
@@ -0,0 +1,60 @@
1
+ 'use client';
2
+
3
+ import { useContext } from 'react';
4
+
5
+ import type { DefaultError, InfiniteData } from '@tanstack/query-core';
6
+ import {
7
+ useSuspenseInfiniteQuery as useSuspenseInfiniteQueryTanstack,
8
+ UseSuspenseInfiniteQueryResult,
9
+ } from '@tanstack/react-query';
10
+
11
+ import { shelfMerge } from '../lib/shelfMerge.js';
12
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
13
+ import { QraftContext } from '../QraftContext.js';
14
+ import type { RequestClientSchema } from '../RequestClient.js';
15
+ import {
16
+ ServiceOperationQuery,
17
+ ServiceOperationQueryKey,
18
+ } from '../ServiceOperation.js';
19
+
20
+ export const useSuspenseInfiniteQuery: <
21
+ TQueryFnData,
22
+ TError = DefaultError,
23
+ TData = InfiniteData<TQueryFnData>,
24
+ >(
25
+ qraftOptions: QraftClientOptions | undefined,
26
+ schema: RequestClientSchema,
27
+ args: Parameters<
28
+ ServiceOperationQuery<
29
+ RequestClientSchema,
30
+ unknown,
31
+ unknown
32
+ >['useSuspenseInfiniteQuery']
33
+ >
34
+ ) => UseSuspenseInfiniteQueryResult<TData, TError> & {
35
+ queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown>;
36
+ } = (qraftOptions, schema, args) => {
37
+ const [params, options, ...restArgs] = args;
38
+
39
+ const requestClient = useContext(qraftOptions?.context ?? QraftContext)
40
+ ?.requestClient;
41
+
42
+ if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
43
+
44
+ return useSuspenseInfiniteQueryTanstack(
45
+ {
46
+ ...options,
47
+ queryKey: [{ url: schema.url, infinite: true }, params as never] as const,
48
+ queryFn:
49
+ options?.queryFn ??
50
+ function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
51
+ return requestClient(schema, {
52
+ parameters: shelfMerge(2, queryParams, pageParam) as never,
53
+ signal,
54
+ meta,
55
+ });
56
+ },
57
+ },
58
+ ...restArgs
59
+ ) as never;
60
+ };
@@ -0,0 +1,64 @@
1
+ 'use client';
2
+
3
+ import { useContext } from 'react';
4
+
5
+ import type { DefaultError } from '@tanstack/query-core';
6
+ import {
7
+ UseQueryResult,
8
+ useSuspenseQuery as useSuspenseQueryTanstack,
9
+ } from '@tanstack/react-query';
10
+
11
+ import type { QraftClientOptions } from '../qraftAPIClient.js';
12
+ import { QraftContext } from '../QraftContext.js';
13
+ import type { RequestClientSchema } from '../RequestClient.js';
14
+ import {
15
+ ServiceOperationQuery,
16
+ ServiceOperationQueryKey,
17
+ } from '../ServiceOperation.js';
18
+
19
+ export const useSuspenseQuery: <
20
+ TQueryFnData = unknown,
21
+ TError = DefaultError,
22
+ TData = TQueryFnData,
23
+ >(
24
+ qraftOptions: QraftClientOptions | undefined,
25
+ schema: RequestClientSchema,
26
+ args: Parameters<
27
+ ServiceOperationQuery<
28
+ RequestClientSchema,
29
+ unknown,
30
+ unknown
31
+ >['useSuspenseQuery']
32
+ >
33
+ ) => UseQueryResult<TData, TError> & {
34
+ queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown>;
35
+ } = (qraftOptions, schema, args) => {
36
+ const [params, options, ...restArgs] = args;
37
+
38
+ const requestClient = useContext(qraftOptions?.context ?? QraftContext)
39
+ ?.requestClient;
40
+
41
+ if (!requestClient) throw new Error(`QraftContext.requestClient not found`);
42
+
43
+ const queryKey: ServiceOperationQueryKey<RequestClientSchema, unknown> = [
44
+ { url: schema.url },
45
+ params,
46
+ ];
47
+
48
+ return useSuspenseQueryTanstack(
49
+ {
50
+ ...options,
51
+ queryKey,
52
+ queryFn:
53
+ options?.queryFn ??
54
+ function ({ queryKey: [, queryParams], signal, meta }) {
55
+ return requestClient(schema, {
56
+ parameters: queryParams as never,
57
+ signal,
58
+ meta,
59
+ });
60
+ },
61
+ },
62
+ ...restArgs
63
+ ) as never;
64
+ };
@@ -1,4 +1,4 @@
1
- import { shelfMerge } from './useInfiniteQuery.js';
1
+ import { shelfMerge } from './shelfMerge.js';
2
2
 
3
3
  describe('shelfMerge', () => {
4
4
  it('merges simple objects', async () => {
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Merges objects with provided depth
3
+ * @param depth
4
+ * @param args
5
+ */
6
+ export function shelfMerge<T>(depth = 2, ...args: T[]): T {
7
+ return args.reduce((acc, arg) => {
8
+ if (!arg || typeof arg !== 'object') return acc;
9
+
10
+ Object.entries(arg).forEach(([key, value]) => {
11
+ if (typeof value !== 'object') {
12
+ acc[key as never] = value as never;
13
+ return;
14
+ }
15
+
16
+ if (Array.isArray(value)) {
17
+ acc[key as never] = value as never;
18
+ return;
19
+ }
20
+
21
+ if (depth > 1) {
22
+ acc[key as never] = shelfMerge(
23
+ depth - 1,
24
+ acc[key as never],
25
+ value
26
+ ) as never;
27
+ return;
28
+ }
29
+
30
+ acc[key as never] = value as never;
31
+ });
32
+
33
+ return acc;
34
+ }, {} as T);
35
+ }
@@ -9,8 +9,8 @@ import {
9
9
  import { act, renderHook, waitFor } from '@testing-library/react';
10
10
 
11
11
  import { createAPIClient } from './fixtures/api/index.js';
12
- import { bodySerializer, urlSerializer, request } from './lib/request.js';
13
- import { QraftContext, QraftContextValue } from './QraftContext.js';
12
+ import { bodySerializer, request, urlSerializer } from './lib/request.js';
13
+ import { QraftContextValue } from './QraftContext.js';
14
14
  import type { RequestClient } from './RequestClient.js';
15
15
 
16
16
  const qraft = createAPIClient();
@@ -130,6 +130,58 @@ describe('Qraft uses Queries', () => {
130
130
  });
131
131
  });
132
132
 
133
+ describe('Qraft uses Suspense Queries', () => {
134
+ it('supports useSuspenseQuery', async () => {
135
+ const hook = () => {
136
+ try {
137
+ return qraft.approvalPolicies.getApprovalPoliciesId.useSuspenseQuery({
138
+ header: {
139
+ 'x-monite-version': '1.0.0',
140
+ },
141
+ path: {
142
+ approval_policy_id: '1',
143
+ },
144
+ query: {
145
+ items_order: ['asc', 'desc'],
146
+ },
147
+ });
148
+ } catch (error) {
149
+ return error as Promise<unknown>;
150
+ }
151
+ };
152
+
153
+ const queryClient = new QueryClient();
154
+
155
+ const { result: resultWithErrorPromise } = renderHook(hook, {
156
+ wrapper: (props) => <Providers {...props} queryClient={queryClient} />,
157
+ });
158
+
159
+ expect(resultWithErrorPromise.current).toBeInstanceOf(Promise); // Suspense throws a promise
160
+
161
+ await resultWithErrorPromise.current;
162
+
163
+ const { result: resultWithData } = renderHook(hook, {
164
+ wrapper: (props) => <Providers {...props} queryClient={queryClient} />,
165
+ });
166
+
167
+ if (resultWithData.current instanceof Promise) {
168
+ throw new Error('Promise should be resolved');
169
+ }
170
+
171
+ expect(resultWithData.current.data).toEqual({
172
+ header: {
173
+ 'x-monite-version': '1.0.0',
174
+ },
175
+ path: {
176
+ approval_policy_id: '1',
177
+ },
178
+ query: {
179
+ items_order: ['asc', 'desc'],
180
+ },
181
+ });
182
+ });
183
+ });
184
+
133
185
  describe('Qraft uses Infinite Queries', () => {
134
186
  it('supports useInfiniteQuery', async () => {
135
187
  const { result } = renderHook(
@@ -292,6 +344,86 @@ describe('Qraft uses Infinite Queries', () => {
292
344
  });
293
345
  });
294
346
 
347
+ describe('Qraft uses Suspense Infinite Queries', () => {
348
+ it('supports useSuspenseInfiniteQuery', async () => {
349
+ const hook = () => {
350
+ try {
351
+ return qraft.files.getFiles.useSuspenseInfiniteQuery(
352
+ {
353
+ header: {
354
+ 'x-monite-version': '1.0.0',
355
+ },
356
+ query: {
357
+ id__in: ['1', '2'],
358
+ },
359
+ },
360
+ {
361
+ getNextPageParam: (lastPage, allPages, params) => {
362
+ return {
363
+ query: {
364
+ page: params.query?.page
365
+ ? String(Number(params.query.page) + 1)
366
+ : undefined,
367
+ },
368
+ };
369
+ },
370
+ initialPageParam: {
371
+ query: {
372
+ page: '1',
373
+ },
374
+ },
375
+ }
376
+ );
377
+ } catch (error) {
378
+ return error as Promise<unknown>;
379
+ }
380
+ };
381
+
382
+ const queryClient = new QueryClient();
383
+
384
+ const { result } = renderHook(hook, {
385
+ wrapper: (props) => <Providers {...props} queryClient={queryClient} />,
386
+ });
387
+
388
+ const { result: resultWithErrorPromise } = renderHook(hook, {
389
+ wrapper: (props) => <Providers {...props} queryClient={queryClient} />,
390
+ });
391
+
392
+ expect(resultWithErrorPromise.current).toBeInstanceOf(Promise); // Suspense throws a promise
393
+
394
+ await resultWithErrorPromise.current;
395
+
396
+ const { result: resultWithData } = renderHook(hook, {
397
+ wrapper: (props) => <Providers {...props} queryClient={queryClient} />,
398
+ });
399
+
400
+ if (resultWithData.current instanceof Promise) {
401
+ throw new Error('Promise should be resolved');
402
+ }
403
+
404
+ expect(resultWithData.current.data).toEqual({
405
+ pageParams: [
406
+ {
407
+ query: {
408
+ page: '1',
409
+ },
410
+ },
411
+ ],
412
+ pages: [
413
+ {
414
+ header: {
415
+ 'x-monite-version': '1.0.0',
416
+ },
417
+ query: {
418
+ id__in: ['1', '2'],
419
+ page: '1',
420
+ },
421
+ },
422
+ ],
423
+ });
424
+ });
425
+ });
426
+
295
427
  describe('Qraft uses Mutations', () => {
296
428
  it('supports useMutation without predefined parameters', async () => {
297
429
  const { result } = renderHook(