@navios/react-query 0.7.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +171 -1
  2. package/README.md +152 -4
  3. package/coverage/base.css +224 -0
  4. package/coverage/block-navigation.js +87 -0
  5. package/coverage/client/declare-client.mts.html +1264 -0
  6. package/coverage/client/index.html +116 -0
  7. package/coverage/clover.xml +160 -0
  8. package/coverage/coverage-final.json +8 -0
  9. package/coverage/favicon.png +0 -0
  10. package/coverage/index.html +146 -0
  11. package/coverage/mutation/index.html +131 -0
  12. package/coverage/mutation/key-creator.mts.html +277 -0
  13. package/coverage/mutation/make-hook.mts.html +952 -0
  14. package/coverage/prettify.css +1 -0
  15. package/coverage/prettify.js +2 -0
  16. package/coverage/query/index.html +161 -0
  17. package/coverage/query/key-creator.mts.html +415 -0
  18. package/coverage/query/make-infinite-options.mts.html +601 -0
  19. package/coverage/query/make-options.mts.html +838 -0
  20. package/coverage/query/prefetch.mts.html +1063 -0
  21. package/coverage/sort-arrow-sprite.png +0 -0
  22. package/coverage/sorter.js +210 -0
  23. package/dist/src/__tests__/errorSchema.spec.d.mts +2 -0
  24. package/dist/src/__tests__/errorSchema.spec.d.mts.map +1 -0
  25. package/dist/src/__tests__/prefetch.spec.d.mts +2 -0
  26. package/dist/src/__tests__/prefetch.spec.d.mts.map +1 -0
  27. package/dist/src/client/__type-tests__/from-endpoint.spec-d.d.mts +2 -0
  28. package/dist/src/client/__type-tests__/from-endpoint.spec-d.d.mts.map +1 -0
  29. package/dist/src/client/__type-tests__/infinite-query.spec-d.d.mts +2 -0
  30. package/dist/src/client/__type-tests__/infinite-query.spec-d.d.mts.map +1 -0
  31. package/dist/src/client/__type-tests__/multipart-mutation.spec-d.d.mts +2 -0
  32. package/dist/src/client/__type-tests__/multipart-mutation.spec-d.d.mts.map +1 -0
  33. package/dist/src/client/__type-tests__/mutation.spec-d.d.mts +2 -0
  34. package/dist/src/client/__type-tests__/mutation.spec-d.d.mts.map +1 -0
  35. package/dist/src/client/__type-tests__/query.spec-d.d.mts +2 -0
  36. package/dist/src/client/__type-tests__/query.spec-d.d.mts.map +1 -0
  37. package/dist/src/client/declare-client.d.mts +15 -8
  38. package/dist/src/client/declare-client.d.mts.map +1 -1
  39. package/dist/src/client/types/from-endpoint.d.mts +130 -0
  40. package/dist/src/client/types/from-endpoint.d.mts.map +1 -0
  41. package/dist/src/client/types/helpers.d.mts +74 -0
  42. package/dist/src/client/types/helpers.d.mts.map +1 -0
  43. package/dist/src/client/types/index.d.mts +21 -0
  44. package/dist/src/client/types/index.d.mts.map +1 -0
  45. package/dist/src/client/types/infinite-query.d.mts +61 -0
  46. package/dist/src/client/types/infinite-query.d.mts.map +1 -0
  47. package/dist/src/client/types/multipart-mutation.d.mts +98 -0
  48. package/dist/src/client/types/multipart-mutation.d.mts.map +1 -0
  49. package/dist/src/client/types/mutation.d.mts +75 -0
  50. package/dist/src/client/types/mutation.d.mts.map +1 -0
  51. package/dist/src/client/types/query.d.mts +65 -0
  52. package/dist/src/client/types/query.d.mts.map +1 -0
  53. package/dist/src/client/types.d.mts +1 -608
  54. package/dist/src/client/types.d.mts.map +1 -1
  55. package/dist/src/common/types.d.mts +40 -3
  56. package/dist/src/common/types.d.mts.map +1 -1
  57. package/dist/src/mutation/index.d.mts +1 -0
  58. package/dist/src/mutation/index.d.mts.map +1 -1
  59. package/dist/src/mutation/make-hook.d.mts +42 -16
  60. package/dist/src/mutation/make-hook.d.mts.map +1 -1
  61. package/dist/src/mutation/optimistic.d.mts +172 -0
  62. package/dist/src/mutation/optimistic.d.mts.map +1 -0
  63. package/dist/src/mutation/types.d.mts +41 -20
  64. package/dist/src/mutation/types.d.mts.map +1 -1
  65. package/dist/src/query/index.d.mts +1 -0
  66. package/dist/src/query/index.d.mts.map +1 -1
  67. package/dist/src/query/key-creator.d.mts.map +1 -1
  68. package/dist/src/query/make-infinite-options.d.mts +3 -2
  69. package/dist/src/query/make-infinite-options.d.mts.map +1 -1
  70. package/dist/src/query/make-options.d.mts +42 -12
  71. package/dist/src/query/make-options.d.mts.map +1 -1
  72. package/dist/src/query/prefetch.d.mts +245 -0
  73. package/dist/src/query/prefetch.d.mts.map +1 -0
  74. package/dist/src/query/types.d.mts +25 -18
  75. package/dist/src/query/types.d.mts.map +1 -1
  76. package/dist/tsconfig.tsbuildinfo +1 -1
  77. package/lib/index.cjs +451 -28
  78. package/lib/index.cjs.map +1 -1
  79. package/lib/index.d.cts +1019 -600
  80. package/lib/index.d.cts.map +1 -1
  81. package/lib/index.d.mts +1016 -597
  82. package/lib/index.d.mts.map +1 -1
  83. package/lib/index.mjs +447 -29
  84. package/lib/index.mjs.map +1 -1
  85. package/package.json +3 -3
  86. package/src/__tests__/declare-client.spec.mts +229 -2
  87. package/src/__tests__/errorSchema.spec.mts +391 -0
  88. package/src/__tests__/make-mutation.spec.mts +6 -5
  89. package/src/__tests__/makeDataTag.spec.mts +2 -1
  90. package/src/__tests__/makeQueryOptions.spec.mts +2 -1
  91. package/src/__tests__/prefetch.spec.mts +310 -0
  92. package/src/client/__type-tests__/from-endpoint.spec-d.mts +550 -0
  93. package/src/client/__type-tests__/infinite-query.spec-d.mts +648 -0
  94. package/src/client/__type-tests__/multipart-mutation.spec-d.mts +725 -0
  95. package/src/client/__type-tests__/mutation.spec-d.mts +757 -0
  96. package/src/client/__type-tests__/query.spec-d.mts +701 -0
  97. package/src/client/declare-client.mts +59 -34
  98. package/src/client/types/from-endpoint.mts +344 -0
  99. package/src/client/types/helpers.mts +140 -0
  100. package/src/client/types/index.mts +26 -0
  101. package/src/client/types/infinite-query.mts +133 -0
  102. package/src/client/types/multipart-mutation.mts +264 -0
  103. package/src/client/types/mutation.mts +176 -0
  104. package/src/client/types/query.mts +132 -0
  105. package/src/client/types.mts +1 -1935
  106. package/src/common/types.mts +67 -3
  107. package/src/mutation/index.mts +1 -0
  108. package/src/mutation/make-hook.mts +171 -63
  109. package/src/mutation/optimistic.mts +300 -0
  110. package/src/mutation/types.mts +87 -30
  111. package/src/query/index.mts +1 -0
  112. package/src/query/key-creator.mts +24 -13
  113. package/src/query/make-infinite-options.mts +53 -10
  114. package/src/query/make-options.mts +184 -43
  115. package/src/query/prefetch.mts +326 -0
  116. package/src/query/types.mts +56 -17
  117. package/src/client/__type-tests__/client-instance.spec-d.mts +0 -852
@@ -1,10 +1,13 @@
1
1
  import type {
2
2
  AnyEndpointConfig,
3
3
  BaseEndpointConfig,
4
+ EndpointOptions,
4
5
  HttpMethod,
6
+ InferEndpointReturn,
7
+ RequestArgs,
8
+ Simplify,
5
9
  UrlHasParams,
6
10
  UrlParams,
7
- Util_FlatObject,
8
11
  } from '@navios/builder'
9
12
  import type {
10
13
  DataTag,
@@ -15,33 +18,59 @@ import type {
15
18
  } from '@tanstack/react-query'
16
19
  import type { z, ZodObject, ZodType } from 'zod/v4'
17
20
 
18
- import type { Split } from '../common/types.mjs'
21
+ import type { ComputeResponseInput, Split } from '../common/types.mjs'
22
+
23
+ /**
24
+ * Helper type to extract the result type from processResponse.
25
+ */
26
+ export type QueryResult<
27
+ Options extends EndpointOptions,
28
+ UseDiscriminator extends boolean = false,
29
+ > = Options extends {
30
+ processResponse: (data: any) => infer Result
31
+ }
32
+ ? Result
33
+ : InferEndpointReturn<Options, UseDiscriminator>
19
34
 
20
35
  /**
21
36
  * Arguments for query functions based on URL params and query schema.
37
+ * Uses RequestArgs from builder for consistency.
22
38
  */
23
39
  export type QueryArgs<
24
40
  Url extends string = string,
25
- QuerySchema = ZodObject,
26
- RequestSchema = undefined,
27
- > = (UrlHasParams<Url> extends true ? { urlParams: UrlParams<Url> } : {}) &
28
- (QuerySchema extends ZodObject ? { params: z.input<QuerySchema> } : {}) &
29
- (RequestSchema extends ZodType ? { data: z.input<RequestSchema> } : {})
41
+ QuerySchema extends ZodObject | undefined = undefined,
42
+ RequestSchema extends ZodType | undefined = undefined,
43
+ > = RequestArgs<Url, QuerySchema, RequestSchema>
30
44
 
31
45
  /**
32
46
  * Arguments containing only URL params (for invalidateAll operations).
33
47
  */
34
48
  export type QueryUrlParamsArgs<Url extends string = string> =
35
- UrlHasParams<Url> extends true ? { urlParams: UrlParams<Url> } : {} | undefined
49
+ UrlHasParams<Url> extends true
50
+ ? { urlParams: UrlParams<Url> }
51
+ : {} | undefined
36
52
 
37
53
  /**
38
54
  * Base parameters for query configuration.
55
+ *
56
+ * @template UseDiscriminator - When `true`, errors are returned as union types in processResponse.
57
+ * When `false` (default), errors are thrown and not included in the response type.
39
58
  */
40
- export type QueryParams<Config extends AnyEndpointConfig, Res = any> = {
59
+ export type QueryParams<
60
+ Config extends AnyEndpointConfig,
61
+ Res = any,
62
+ UseDiscriminator extends boolean = false,
63
+ > = {
41
64
  keyPrefix?: string[]
42
65
  keySuffix?: string[]
43
66
  onFail?: (err: unknown) => void
44
- processResponse: (data: z.output<Config['responseSchema']>) => Res
67
+ processResponse: (
68
+ data: ComputeResponseInput<
69
+ UseDiscriminator,
70
+ Config['responseSchema'],
71
+ Config['errorSchema']
72
+ >,
73
+ ) => Res
45
74
  }
46
75
 
47
76
  /**
@@ -88,31 +117,41 @@ export type QueryHelpers<
88
117
  > = {
89
118
  queryKey: QueryKeyCreatorResult<QuerySchema, Url, Result, IsInfinite>
90
119
  use: (
91
- params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>,
120
+ params: Simplify<QueryArgs<Url, QuerySchema, RequestSchema>>,
92
121
  ) => UseQueryResult<Result, Error>
93
122
  useSuspense: (
94
- params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>,
123
+ params: Simplify<QueryArgs<Url, QuerySchema, RequestSchema>>,
95
124
  ) => UseSuspenseQueryResult<Result, Error>
96
125
  invalidate: (
97
126
  queryClient: QueryClient,
98
- params: Util_FlatObject<QueryArgs<Url, QuerySchema, RequestSchema>>,
127
+ params: Simplify<QueryArgs<Url, QuerySchema, RequestSchema>>,
99
128
  ) => () => Promise<void>
100
129
  invalidateAll: (
101
130
  queryClient: QueryClient,
102
- params: Util_FlatObject<QueryUrlParamsArgs<Url>>,
131
+ params: Simplify<QueryUrlParamsArgs<Url>>,
103
132
  ) => () => Promise<void>
104
133
  }
105
134
 
106
135
  /**
107
136
  * Options for infinite query configuration.
137
+ *
138
+ * @template UseDiscriminator - When `true`, errors are returned as union types in processResponse.
139
+ * When `false` (default), errors are thrown and not included in the response type.
108
140
  */
109
141
  export type InfiniteQueryOptions<
110
142
  Config extends BaseEndpointConfig<HttpMethod, string, ZodObject>,
111
143
  Res = any,
144
+ UseDiscriminator extends boolean = false,
112
145
  > = {
113
146
  keyPrefix?: string[]
114
147
  keySuffix?: string[]
115
- processResponse: (data: z.infer<Config['responseSchema']>) => Res
148
+ processResponse: (
149
+ data: ComputeResponseInput<
150
+ UseDiscriminator,
151
+ Config['responseSchema'],
152
+ Config['errorSchema']
153
+ >,
154
+ ) => Res
116
155
  onFail?: (err: unknown) => void
117
156
  getNextPageParam: (
118
157
  lastPage: Res,
@@ -138,8 +177,8 @@ export type InfiniteQueryOptions<
138
177
  /** @deprecated Use QueryArgs instead */
139
178
  export type ClientQueryArgs<
140
179
  Url extends string = string,
141
- QuerySchema = ZodObject,
142
- RequestSchema = undefined,
180
+ QuerySchema extends ZodObject = ZodObject,
181
+ RequestSchema extends ZodType | undefined = undefined,
143
182
  > = QueryArgs<Url, QuerySchema, RequestSchema>
144
183
 
145
184
  /** @deprecated Use QueryUrlParamsArgs instead */