@qualisero/openapi-endpoint 0.10.0 → 0.11.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.
- package/README.md +69 -1
- package/dist/index.d.ts +2 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -12
- package/dist/openapi-helpers.d.ts +10 -2
- package/dist/openapi-helpers.d.ts.map +1 -1
- package/dist/openapi-helpers.js +13 -1
- package/dist/openapi-mutation.d.ts.map +1 -1
- package/dist/openapi-mutation.js +12 -2
- package/dist/openapi-query.d.ts +6 -6
- package/dist/openapi-query.d.ts.map +1 -1
- package/dist/openapi-query.js +19 -2
- package/dist/types.d.ts +66 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Vue OpenAPI Query
|
|
2
2
|
|
|
3
|
-
[](https://badge.fury.io/js/@qualisero%2Fopenapi-endpoint)
|
|
4
4
|
[](https://github.com/qualisero/openapi-endpoint/actions/workflows/ci.yml)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://bundlephobia.com/package/@qualisero/openapi-endpoint)
|
|
@@ -89,6 +89,58 @@ await createPetMutation.mutateAsync({
|
|
|
89
89
|
|
|
90
90
|
## Advanced Usage
|
|
91
91
|
|
|
92
|
+
### Reactive Query Parameters
|
|
93
|
+
|
|
94
|
+
The library supports type-safe, reactive query parameters that automatically trigger refetches when their values change:
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
import { ref, computed } from 'vue'
|
|
98
|
+
import { api, OperationId } from './api/init'
|
|
99
|
+
|
|
100
|
+
// Static query parameters
|
|
101
|
+
const { data: pets } = api.useQuery(OperationId.listPets, {
|
|
102
|
+
queryParams: { limit: 10 },
|
|
103
|
+
})
|
|
104
|
+
// Results in: GET /pets?limit=10
|
|
105
|
+
|
|
106
|
+
// Reactive query parameters with computed
|
|
107
|
+
const limit = ref(10)
|
|
108
|
+
const status = ref<'available' | 'pending' | 'sold'>('available')
|
|
109
|
+
|
|
110
|
+
const petsQuery = api.useQuery(OperationId.listPets, {
|
|
111
|
+
queryParams: computed(() => ({
|
|
112
|
+
limit: limit.value,
|
|
113
|
+
status: status.value,
|
|
114
|
+
})),
|
|
115
|
+
})
|
|
116
|
+
|
|
117
|
+
// When limit or status changes, query automatically refetches
|
|
118
|
+
limit.value = 20
|
|
119
|
+
status.value = 'pending'
|
|
120
|
+
// Query refetches with: GET /pets?limit=20&status=pending
|
|
121
|
+
|
|
122
|
+
// Combine with path parameters
|
|
123
|
+
const userPetsQuery = api.useQuery(
|
|
124
|
+
OperationId.listUserPets,
|
|
125
|
+
computed(() => ({ userId: userId.value })),
|
|
126
|
+
{
|
|
127
|
+
queryParams: computed(() => ({
|
|
128
|
+
includeArchived: includeArchived.value,
|
|
129
|
+
})),
|
|
130
|
+
},
|
|
131
|
+
)
|
|
132
|
+
// Results in: GET /users/user-123/pets?includeArchived=false
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Key Features:**
|
|
136
|
+
|
|
137
|
+
- **Type-safe**: Query parameters are typed based on your OpenAPI specification
|
|
138
|
+
- **Reactive**: Supports `ref`, `computed`, and function-based values
|
|
139
|
+
- **Automatic refetch**: Changes to query params trigger automatic refetch via TanStack Query's key mechanism
|
|
140
|
+
- **Backward compatible**: Works alongside existing `axiosOptions.params`
|
|
141
|
+
|
|
142
|
+
For detailed examples, see [Reactive Query Parameters Guide](./REACTIVE_QUERY_PARAMS.md).
|
|
143
|
+
|
|
92
144
|
### Automatic Operation Type Detection with `api.useEndpoint`
|
|
93
145
|
|
|
94
146
|
The `api.useEndpoint` method automatically detects whether an operation is a query (GET/HEAD/OPTIONS) or mutation (POST/PUT/PATCH/DELETE) based on the HTTP method defined in your OpenAPI specification:
|
|
@@ -250,6 +302,22 @@ const userPetsQuery = api.useQuery(
|
|
|
250
302
|
)
|
|
251
303
|
```
|
|
252
304
|
|
|
305
|
+
### Reactive Query Parameters with Refs
|
|
306
|
+
|
|
307
|
+
```typescript
|
|
308
|
+
import { ref } from 'vue'
|
|
309
|
+
|
|
310
|
+
// Use reactive query parameters
|
|
311
|
+
const limit = ref(10)
|
|
312
|
+
const petsQuery = api.useQuery(OperationId.listPets, {
|
|
313
|
+
queryParams: { limit: limit.value },
|
|
314
|
+
})
|
|
315
|
+
|
|
316
|
+
// When limit changes, the query automatically refetches
|
|
317
|
+
limit.value = 20 // Query refetches with new parameter
|
|
318
|
+
// Results in: GET /pets?limit=20
|
|
319
|
+
```
|
|
320
|
+
|
|
253
321
|
## API Documentation
|
|
254
322
|
|
|
255
323
|
Full API documentation is available at [https://qualisero.github.io/openapi-endpoint/](https://qualisero.github.io/openapi-endpoint/). The documentation includes detailed information about all methods, types, and configuration options.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
import type { MaybeRefOrGetter } from 'vue';
|
|
2
|
-
import { QueryClient } from '@tanstack/vue-query';
|
|
3
2
|
import { EndpointQueryReturn } from './openapi-query';
|
|
4
3
|
import { EndpointMutationReturn } from './openapi-mutation';
|
|
5
4
|
import { Operations, GetPathParameters, OpenApiConfig, QQueryOptions, QMutationOptions, IsQueryOperation } from './types';
|
|
6
|
-
export type { OpenApiConfig, OpenApiInstance, GetResponseData } from './types';
|
|
5
|
+
export type { OpenApiConfig, OpenApiInstance, GetResponseData, QueryClientLike, GetQueryParameters } from './types';
|
|
6
|
+
export { queryClient } from './openapi-helpers';
|
|
7
7
|
/** @internal */
|
|
8
8
|
export { type EndpointQueryReturn, useEndpointQuery } from './openapi-query';
|
|
9
9
|
/** @internal */
|
|
10
10
|
export { type EndpointMutationReturn, useEndpointMutation } from './openapi-mutation';
|
|
11
|
-
/**
|
|
12
|
-
* Default QueryClient instance with pre-configured options.
|
|
13
|
-
*
|
|
14
|
-
* This client is used by default when no custom QueryClient is provided to useOpenApi.
|
|
15
|
-
* It includes sensible defaults like 5-minute stale time for queries.
|
|
16
|
-
*/
|
|
17
|
-
export declare const queryClient: QueryClient;
|
|
18
11
|
/**
|
|
19
12
|
* Creates a type-safe OpenAPI client for Vue applications.
|
|
20
13
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
import { QueryClient } from '@tanstack/vue-query';
|
|
2
1
|
import { useEndpoint } from './openapi-endpoint';
|
|
3
2
|
import { useEndpointQuery } from './openapi-query';
|
|
4
3
|
import { useEndpointMutation } from './openapi-mutation';
|
|
5
4
|
import { getHelpers } from './openapi-helpers';
|
|
5
|
+
export { queryClient } from './openapi-helpers';
|
|
6
6
|
/** @internal */
|
|
7
7
|
export { useEndpointQuery } from './openapi-query';
|
|
8
8
|
/** @internal */
|
|
9
9
|
export { useEndpointMutation } from './openapi-mutation';
|
|
10
|
-
/**
|
|
11
|
-
* Default QueryClient instance with pre-configured options.
|
|
12
|
-
*
|
|
13
|
-
* This client is used by default when no custom QueryClient is provided to useOpenApi.
|
|
14
|
-
* It includes sensible defaults like 5-minute stale time for queries.
|
|
15
|
-
*/
|
|
16
|
-
export const queryClient = new QueryClient({
|
|
17
|
-
defaultOptions: {
|
|
18
|
-
queries: { staleTime: 1000 * 60 * 5 },
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
10
|
/**
|
|
22
11
|
* Creates a type-safe OpenAPI client for Vue applications.
|
|
23
12
|
*
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import { type OperationInfo, OpenApiConfig, Operations } from './types';
|
|
1
|
+
import { type OperationInfo, OpenApiConfig, Operations, QueryClientLike } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Default QueryClient instance with pre-configured options.
|
|
4
|
+
*
|
|
5
|
+
* This client is used by default when no custom QueryClient is provided to useOpenApi.
|
|
6
|
+
* It includes sensible defaults like 5-minute stale time for queries.
|
|
7
|
+
*/
|
|
8
|
+
declare const defaultQueryClient: QueryClientLike;
|
|
2
9
|
export declare function getHelpers<Ops extends Operations<Ops>, Op extends keyof Ops>(config: OpenApiConfig<Ops>): {
|
|
3
10
|
getOperationInfo: (operationId: Op) => OperationInfo;
|
|
4
11
|
getListOperationPath: (operationId: Op) => string | null;
|
|
@@ -6,7 +13,8 @@ export declare function getHelpers<Ops extends Operations<Ops>, Op extends keyof
|
|
|
6
13
|
isQueryOperation: (operationId: Op) => boolean;
|
|
7
14
|
isMutationOperation: (operationId: Op) => boolean;
|
|
8
15
|
axios: import("axios").AxiosInstance;
|
|
9
|
-
queryClient:
|
|
16
|
+
queryClient: QueryClientLike;
|
|
10
17
|
};
|
|
11
18
|
export type OpenApiHelpers<Ops extends Operations<Ops>, Op extends keyof Ops> = ReturnType<typeof getHelpers<Ops, Op>>;
|
|
19
|
+
export { defaultQueryClient as queryClient };
|
|
12
20
|
//# sourceMappingURL=openapi-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-helpers.d.ts","sourceRoot":"","sources":["../src/openapi-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"openapi-helpers.d.ts","sourceRoot":"","sources":["../src/openapi-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAGpG;;;;;GAKG;AACH,QAAA,MAAM,kBAAkB,EAAE,eAIxB,CAAA;AAiBF,wBAAgB,UAAU,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC;oCAE/D,EAAE,KAAG,aAAa;wCAMd,EAAE,KAAG,MAAM,GAAG,IAAI;yCAiCjB,EAAE,KAAG,MAAM,GAAG,IAAI;oCAevB,EAAE,KAAG,OAAO;uCAMT,EAAE,KAAG,OAAO;;;EAcvD;AAED,MAAM,MAAM,cAAc,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,IAAI,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAEtH,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,CAAA"}
|
package/dist/openapi-helpers.js
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { HttpMethod } from './types';
|
|
2
|
-
import {
|
|
2
|
+
import { QueryClient } from '@tanstack/vue-query';
|
|
3
|
+
/**
|
|
4
|
+
* Default QueryClient instance with pre-configured options.
|
|
5
|
+
*
|
|
6
|
+
* This client is used by default when no custom QueryClient is provided to useOpenApi.
|
|
7
|
+
* It includes sensible defaults like 5-minute stale time for queries.
|
|
8
|
+
*/
|
|
9
|
+
const defaultQueryClient = new QueryClient({
|
|
10
|
+
defaultOptions: {
|
|
11
|
+
queries: { staleTime: 1000 * 60 * 5 },
|
|
12
|
+
},
|
|
13
|
+
});
|
|
3
14
|
// Helper returning the operationId prefix given an http method
|
|
4
15
|
function getMethodPrefix(method) {
|
|
5
16
|
const METHOD_PREFIXES = {
|
|
@@ -86,3 +97,4 @@ export function getHelpers(config) {
|
|
|
86
97
|
queryClient: config.queryClient || defaultQueryClient,
|
|
87
98
|
};
|
|
88
99
|
}
|
|
100
|
+
export { defaultQueryClient as queryClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-mutation.d.ts","sourceRoot":"","sources":["../src/openapi-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAG/F,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAErB,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,IAAI,UAAU,CAChG,OAAO,mBAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CACpC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,EACnF,WAAW,EAAE,EAAE,EACf,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU;AACtC,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,EACjH,aAAa,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"openapi-mutation.d.ts","sourceRoot":"","sources":["../src/openapi-mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAG/F,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAErB,UAAU,EACV,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAE1C,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,IAAI,UAAU,CAChG,OAAO,mBAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,CACpC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,EACnF,WAAW,EAAE,EAAE,EACf,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,UAAU;AACtC,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,EACjH,aAAa,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC;UAiKhB,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;UAAhE,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;UAAhE,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;UAAhE,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;EAK1F"}
|
package/dist/openapi-mutation.js
CHANGED
|
@@ -40,7 +40,7 @@ pathParamsOrOptions, optionsOrNull) {
|
|
|
40
40
|
}
|
|
41
41
|
const { path, method } = h.getOperationInfo(operationId);
|
|
42
42
|
const { pathParams, options } = getParamsOptionsFrom(path, pathParamsOrOptions, optionsOrNull);
|
|
43
|
-
const { axiosOptions, dontInvalidate, dontUpdateCache, invalidateOperations, refetchEndpoints, ...useMutationOptions } = options;
|
|
43
|
+
const { axiosOptions, dontInvalidate, dontUpdateCache, invalidateOperations, refetchEndpoints, queryParams, ...useMutationOptions } = options;
|
|
44
44
|
const extraPathParams = ref({});
|
|
45
45
|
// Compute the resolved path - same pattern as query
|
|
46
46
|
// This ensures that when pathParams is a function, it gets called within the computed
|
|
@@ -55,9 +55,14 @@ pathParamsOrOptions, optionsOrNull) {
|
|
|
55
55
|
}));
|
|
56
56
|
const resolvedPath = computed(() => resolvePath(path, allPathParams.value));
|
|
57
57
|
const queryKey = computed(() => generateQueryKey(resolvedPath.value));
|
|
58
|
+
// Make query parameters reactive
|
|
59
|
+
const allQueryParams = computed(() => {
|
|
60
|
+
const result = toValue(queryParams);
|
|
61
|
+
return result;
|
|
62
|
+
});
|
|
58
63
|
const mutation = useMutation({
|
|
59
64
|
mutationFn: async (vars) => {
|
|
60
|
-
const { data, pathParams: pathParamsFromMutate, axiosOptions: axiosOptionsFromMutate, } = vars;
|
|
65
|
+
const { data, pathParams: pathParamsFromMutate, axiosOptions: axiosOptionsFromMutate, queryParams: queryParamsFromMutate, } = vars;
|
|
61
66
|
extraPathParams.value = pathParamsFromMutate || {};
|
|
62
67
|
// TODO: use typing to ensure all required path params are provided
|
|
63
68
|
if (!isPathResolved(resolvedPath.value)) {
|
|
@@ -71,6 +76,11 @@ pathParamsOrOptions, optionsOrNull) {
|
|
|
71
76
|
...(data !== undefined && { data }),
|
|
72
77
|
...axiosOptions,
|
|
73
78
|
...axiosOptionsFromMutate,
|
|
79
|
+
params: {
|
|
80
|
+
...(axiosOptions?.params || {}),
|
|
81
|
+
...(allQueryParams.value || {}),
|
|
82
|
+
...(queryParamsFromMutate || {}),
|
|
83
|
+
},
|
|
74
84
|
});
|
|
75
85
|
},
|
|
76
86
|
onSuccess: async (response, vars, _context) => {
|
package/dist/openapi-query.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export type EndpointQueryReturn<Ops extends Operations<Ops>, Op extends keyof Op
|
|
|
27
27
|
export declare function useEndpointQuery<Ops extends Operations<Ops>, Op extends keyof Ops>(operationId: Op, h: OpenApiHelpers<Ops, Op>, pathParamsOrOptions?: MaybeRefOrGetter<GetPathParameters<Ops, Op> | null | undefined> | QQueryOptions<Ops, Op>, optionsOrNull?: QQueryOptions<Ops, Op>): {
|
|
28
28
|
data: ComputedRef<GetResponseData<Ops, Op> | undefined>;
|
|
29
29
|
isEnabled: ComputedRef<boolean>;
|
|
30
|
-
queryKey: ComputedRef<string[]>;
|
|
30
|
+
queryKey: ComputedRef<(string | import("./types").GetQueryParameters<Ops, Op>)[]>;
|
|
31
31
|
onLoad: (callback: (data: GetResponseData<Ops, Op>) => void) => void;
|
|
32
32
|
pathParams: ComputedRef<GetPathParameters<Ops, Op> | null | undefined>;
|
|
33
33
|
error: import("vue").Ref<Error, Error>;
|
|
@@ -58,7 +58,7 @@ export declare function useEndpointQuery<Ops extends Operations<Ops>, Op extends
|
|
|
58
58
|
} | {
|
|
59
59
|
data: ComputedRef<GetResponseData<Ops, Op> | undefined>;
|
|
60
60
|
isEnabled: ComputedRef<boolean>;
|
|
61
|
-
queryKey: ComputedRef<string[]>;
|
|
61
|
+
queryKey: ComputedRef<(string | import("./types").GetQueryParameters<Ops, Op>)[]>;
|
|
62
62
|
onLoad: (callback: (data: GetResponseData<Ops, Op>) => void) => void;
|
|
63
63
|
pathParams: ComputedRef<GetPathParameters<Ops, Op> | null | undefined>;
|
|
64
64
|
error: import("vue").Ref<null, null>;
|
|
@@ -89,7 +89,7 @@ export declare function useEndpointQuery<Ops extends Operations<Ops>, Op extends
|
|
|
89
89
|
} | {
|
|
90
90
|
data: ComputedRef<GetResponseData<Ops, Op> | undefined>;
|
|
91
91
|
isEnabled: ComputedRef<boolean>;
|
|
92
|
-
queryKey: ComputedRef<string[]>;
|
|
92
|
+
queryKey: ComputedRef<(string | import("./types").GetQueryParameters<Ops, Op>)[]>;
|
|
93
93
|
onLoad: (callback: (data: GetResponseData<Ops, Op>) => void) => void;
|
|
94
94
|
pathParams: ComputedRef<GetPathParameters<Ops, Op> | null | undefined>;
|
|
95
95
|
error: import("vue").Ref<Error, Error>;
|
|
@@ -120,7 +120,7 @@ export declare function useEndpointQuery<Ops extends Operations<Ops>, Op extends
|
|
|
120
120
|
} | {
|
|
121
121
|
data: ComputedRef<GetResponseData<Ops, Op> | undefined>;
|
|
122
122
|
isEnabled: ComputedRef<boolean>;
|
|
123
|
-
queryKey: ComputedRef<string[]>;
|
|
123
|
+
queryKey: ComputedRef<(string | import("./types").GetQueryParameters<Ops, Op>)[]>;
|
|
124
124
|
onLoad: (callback: (data: GetResponseData<Ops, Op>) => void) => void;
|
|
125
125
|
pathParams: ComputedRef<GetPathParameters<Ops, Op> | null | undefined>;
|
|
126
126
|
error: import("vue").Ref<null, null>;
|
|
@@ -151,7 +151,7 @@ export declare function useEndpointQuery<Ops extends Operations<Ops>, Op extends
|
|
|
151
151
|
} | {
|
|
152
152
|
data: ComputedRef<GetResponseData<Ops, Op> | undefined>;
|
|
153
153
|
isEnabled: ComputedRef<boolean>;
|
|
154
|
-
queryKey: ComputedRef<string[]>;
|
|
154
|
+
queryKey: ComputedRef<(string | import("./types").GetQueryParameters<Ops, Op>)[]>;
|
|
155
155
|
onLoad: (callback: (data: GetResponseData<Ops, Op>) => void) => void;
|
|
156
156
|
pathParams: ComputedRef<GetPathParameters<Ops, Op> | null | undefined>;
|
|
157
157
|
error: import("vue").Ref<null, null>;
|
|
@@ -182,7 +182,7 @@ export declare function useEndpointQuery<Ops extends Operations<Ops>, Op extends
|
|
|
182
182
|
} | {
|
|
183
183
|
data: ComputedRef<GetResponseData<Ops, Op> | undefined>;
|
|
184
184
|
isEnabled: ComputedRef<boolean>;
|
|
185
|
-
queryKey: ComputedRef<string[]>;
|
|
185
|
+
queryKey: ComputedRef<(string | import("./types").GetQueryParameters<Ops, Op>)[]>;
|
|
186
186
|
onLoad: (callback: (data: GetResponseData<Ops, Op>) => void) => void;
|
|
187
187
|
pathParams: ComputedRef<GetPathParameters<Ops, Op> | null | undefined>;
|
|
188
188
|
isError: import("vue").Ref<false, false>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-query.d.ts","sourceRoot":"","sources":["../src/openapi-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAEvF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AAGtG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,mBAAmB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,IAAI,UAAU,CAC7F,OAAO,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CACjC,GAAG;IACF,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAA;CACrE,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,EAChF,WAAW,EAAE,EAAE,EACf,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAC1B,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EAC9G,aAAa,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"openapi-query.d.ts","sourceRoot":"","sources":["../src/openapi-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAEvF,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AAGtG,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvD,MAAM,MAAM,mBAAmB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,IAAI,UAAU,CAC7F,OAAO,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CACjC,GAAG;IACF,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAA;CACrE,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,EAChF,WAAW,EAAE,EAAE,EACf,CAAC,EAAE,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC,EAC1B,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,EAC9G,aAAa,CAAC,EAAE,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC;UAgIhB,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;;;uBAN7C,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAM5C,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;;;uBAN7C,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAM5C,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;;;uBAN7C,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAM5C,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;;;uBAN7C,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAM5C,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;;;uBAN7C,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAM5C,WAAW,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;;;uBAN7C,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYnE"}
|
package/dist/openapi-query.js
CHANGED
|
@@ -29,7 +29,7 @@ export function useEndpointQuery(operationId, h, pathParamsOrOptions, optionsOrN
|
|
|
29
29
|
}
|
|
30
30
|
const { path, method } = h.getOperationInfo(operationId);
|
|
31
31
|
const { pathParams, options } = getParamsOptionsFrom(path, pathParamsOrOptions, optionsOrNull);
|
|
32
|
-
const { enabled: enabledInit, onLoad: onLoadInit, axiosOptions, errorHandler, ...useQueryOptions } = options;
|
|
32
|
+
const { enabled: enabledInit, onLoad: onLoadInit, axiosOptions, errorHandler, queryParams, ...useQueryOptions } = options;
|
|
33
33
|
// Make path parameters reactive by ensuring toValue is called inside computed
|
|
34
34
|
// This ensures that when pathParams is a function, it gets called within the computed
|
|
35
35
|
// so Vue can track dependencies of variables referenced inside the function
|
|
@@ -38,7 +38,20 @@ export function useEndpointQuery(operationId, h, pathParamsOrOptions, optionsOrN
|
|
|
38
38
|
return result;
|
|
39
39
|
});
|
|
40
40
|
const resolvedPath = computed(() => resolvePath(path, allPathParams.value));
|
|
41
|
-
|
|
41
|
+
// Make query parameters reactive
|
|
42
|
+
const allQueryParams = computed(() => {
|
|
43
|
+
const result = toValue(queryParams);
|
|
44
|
+
return result;
|
|
45
|
+
});
|
|
46
|
+
// Include query params in the query key so changes trigger refetch
|
|
47
|
+
const queryKey = computed(() => {
|
|
48
|
+
const baseKey = generateQueryKey(resolvedPath.value);
|
|
49
|
+
const qParams = allQueryParams.value;
|
|
50
|
+
if (qParams && Object.keys(qParams).length > 0) {
|
|
51
|
+
return [...baseKey, qParams];
|
|
52
|
+
}
|
|
53
|
+
return baseKey;
|
|
54
|
+
});
|
|
42
55
|
// Check if path is fully resolved for enabling the query
|
|
43
56
|
const isEnabled = computed(() => {
|
|
44
57
|
const baseEnabled = enabledInit !== undefined ? toValue(enabledInit) : true;
|
|
@@ -52,6 +65,10 @@ export function useEndpointQuery(operationId, h, pathParamsOrOptions, optionsOrN
|
|
|
52
65
|
method: method.toLowerCase(),
|
|
53
66
|
url: resolvedPath.value,
|
|
54
67
|
...axiosOptions,
|
|
68
|
+
params: {
|
|
69
|
+
...(axiosOptions?.params || {}),
|
|
70
|
+
...(allQueryParams.value || {}),
|
|
71
|
+
},
|
|
55
72
|
});
|
|
56
73
|
return response.data;
|
|
57
74
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,11 +1,50 @@
|
|
|
1
1
|
import { type AxiosInstance, type AxiosError, type AxiosRequestConfig, type AxiosResponse } from 'axios';
|
|
2
|
-
import { UseMutationOptions, type UseQueryOptions
|
|
2
|
+
import { UseMutationOptions, type UseQueryOptions } from '@tanstack/vue-query';
|
|
3
3
|
import type { MaybeRef, MaybeRefOrGetter } from 'vue';
|
|
4
4
|
import type { EndpointQueryReturn } from './openapi-query';
|
|
5
5
|
import type { EndpointMutationReturn } from './openapi-mutation';
|
|
6
|
+
/**
|
|
7
|
+
* Extended Axios request configuration that allows custom properties.
|
|
8
|
+
*
|
|
9
|
+
* This type extends the standard AxiosRequestConfig to support custom properties
|
|
10
|
+
* that users might add through module augmentation. It ensures compatibility with
|
|
11
|
+
* both standard axios options and user-defined custom properties.
|
|
12
|
+
*/
|
|
13
|
+
export type AxiosRequestConfigExtended = AxiosRequestConfig & Record<string, unknown>;
|
|
6
14
|
/** @internal */
|
|
7
15
|
export type { EndpointQueryReturn, EndpointMutationReturn };
|
|
8
16
|
export type OperationId = string;
|
|
17
|
+
/**
|
|
18
|
+
* Interface defining the minimal QueryClient methods required by this library.
|
|
19
|
+
*
|
|
20
|
+
* This interface ensures compatibility with different versions of @tanstack/vue-query
|
|
21
|
+
* by only requiring the specific methods that are actually used internally.
|
|
22
|
+
* This prevents version compatibility issues where internal implementation details
|
|
23
|
+
* (like private properties) might differ between versions.
|
|
24
|
+
*/
|
|
25
|
+
export interface QueryClientLike {
|
|
26
|
+
/**
|
|
27
|
+
* Cancel running queries that match the provided filters.
|
|
28
|
+
* Used to prevent race conditions when mutations affect data.
|
|
29
|
+
*/
|
|
30
|
+
cancelQueries(filters: {
|
|
31
|
+
queryKey: unknown[];
|
|
32
|
+
exact?: boolean;
|
|
33
|
+
}): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Set query data for a specific query key.
|
|
36
|
+
* Used for optimistic updates after successful mutations.
|
|
37
|
+
*/
|
|
38
|
+
setQueryData(queryKey: unknown[], data: unknown): void;
|
|
39
|
+
/**
|
|
40
|
+
* Invalidate queries that match the provided filters.
|
|
41
|
+
* Used to trigger refetches of related data after mutations.
|
|
42
|
+
*/
|
|
43
|
+
invalidateQueries(filters: {
|
|
44
|
+
queryKey: unknown[];
|
|
45
|
+
exact?: boolean;
|
|
46
|
+
}): Promise<void>;
|
|
47
|
+
}
|
|
9
48
|
export type Operations<Ops> = object & {
|
|
10
49
|
[K in keyof Ops]: {
|
|
11
50
|
method: HttpMethod;
|
|
@@ -19,6 +58,7 @@ export type Operations<Ops> = object & {
|
|
|
19
58
|
* from your OpenAPI specification) and an Axios instance for making HTTP requests.
|
|
20
59
|
*
|
|
21
60
|
* @template Ops - The operations type, typically generated from your OpenAPI specification
|
|
61
|
+
* @template AxiosConfig - The axios request configuration type (defaults to AxiosRequestConfig)
|
|
22
62
|
*
|
|
23
63
|
* @example
|
|
24
64
|
* ```typescript
|
|
@@ -26,6 +66,7 @@ export type Operations<Ops> = object & {
|
|
|
26
66
|
* import { openApiOperations, type OpenApiOperations } from './generated/api-operations'
|
|
27
67
|
* import axios from 'axios'
|
|
28
68
|
*
|
|
69
|
+
* // Basic usage with default axios config
|
|
29
70
|
* const config: OpenApiConfig<OpenApiOperations> = {
|
|
30
71
|
* operations: openApiOperations,
|
|
31
72
|
* axios: axios.create({
|
|
@@ -34,6 +75,12 @@ export type Operations<Ops> = object & {
|
|
|
34
75
|
* }),
|
|
35
76
|
* queryClient: customQueryClient // optional
|
|
36
77
|
* }
|
|
78
|
+
*
|
|
79
|
+
* // With custom axios config type (for module augmentation)
|
|
80
|
+
* const configWithCustomAxios: OpenApiConfig<OpenApiOperations, MyCustomAxiosRequestConfig> = {
|
|
81
|
+
* operations: openApiOperations,
|
|
82
|
+
* axios: customAxiosInstance
|
|
83
|
+
* }
|
|
37
84
|
* ```
|
|
38
85
|
*/
|
|
39
86
|
export interface OpenApiConfig<Ops extends Operations<Ops>> {
|
|
@@ -50,8 +97,11 @@ export interface OpenApiConfig<Ops extends Operations<Ops>> {
|
|
|
50
97
|
/**
|
|
51
98
|
* Optional TanStack Query client instance.
|
|
52
99
|
* If not provided, a default QueryClient with sensible defaults will be used.
|
|
100
|
+
*
|
|
101
|
+
* Note: This accepts any QueryClient-like object that implements the required methods,
|
|
102
|
+
* ensuring compatibility across different versions of @tanstack/vue-query.
|
|
53
103
|
*/
|
|
54
|
-
queryClient?:
|
|
104
|
+
queryClient?: QueryClientLike;
|
|
55
105
|
}
|
|
56
106
|
export declare enum HttpMethod {
|
|
57
107
|
GET = "GET",
|
|
@@ -83,8 +133,9 @@ type OmitMaybeRef<T, K extends PropertyKey> = T extends MaybeRef<infer U> ? Mayb
|
|
|
83
133
|
export type QQueryOptions<Ops extends Operations<Ops>, Op extends keyof Ops> = OmitMaybeRef<UseQueryOptions<GetResponseData<Ops, Op>, Error, GetResponseData<Ops, Op>, GetResponseData<Ops, Op>>, 'queryKey' | 'queryFn' | 'enabled'> & {
|
|
84
134
|
enabled?: MaybeRefOrGetter<boolean>;
|
|
85
135
|
onLoad?: (data: GetResponseData<Ops, Op>) => void;
|
|
86
|
-
axiosOptions?:
|
|
136
|
+
axiosOptions?: AxiosRequestConfigExtended;
|
|
87
137
|
errorHandler?: (error: AxiosError) => GetResponseData<Ops, Op> | void | Promise<GetResponseData<Ops, Op> | void>;
|
|
138
|
+
queryParams?: MaybeRefOrGetter<GetQueryParameters<Ops, Op>>;
|
|
88
139
|
};
|
|
89
140
|
type MutationOnSuccessOptions<Ops extends Operations<Ops>> = {
|
|
90
141
|
dontInvalidate?: boolean;
|
|
@@ -98,11 +149,13 @@ type MutationOnSuccessOptions<Ops extends Operations<Ops>> = {
|
|
|
98
149
|
export type QMutationVars<Ops extends Operations<Ops>, Op extends keyof Ops> = MutationOnSuccessOptions<Ops> & {
|
|
99
150
|
data?: GetRequestBody<Ops, Op>;
|
|
100
151
|
pathParams?: GetPathParameters<Ops, Op>;
|
|
101
|
-
axiosOptions?:
|
|
152
|
+
axiosOptions?: AxiosRequestConfigExtended;
|
|
153
|
+
queryParams?: GetQueryParameters<Ops, Op>;
|
|
102
154
|
};
|
|
103
155
|
/** @internal */
|
|
104
156
|
export type QMutationOptions<Ops extends Operations<Ops>, Op extends keyof Ops> = OmitMaybeRef<UseMutationOptions<AxiosResponse<GetResponseData<Ops, Op>>, Error, GetRequestBody<Ops, Op> extends never ? QMutationVars<Ops, Op> | void : QMutationVars<Ops, Op>>, 'mutationFn' | 'mutationKey'> & MutationOnSuccessOptions<Ops> & {
|
|
105
|
-
axiosOptions?:
|
|
157
|
+
axiosOptions?: AxiosRequestConfigExtended;
|
|
158
|
+
queryParams?: MaybeRefOrGetter<GetQueryParameters<Ops, Op>>;
|
|
106
159
|
};
|
|
107
160
|
export type GetPathParameters<Ops extends Operations<Ops>, Op extends keyof Ops> = Ops[Op] extends {
|
|
108
161
|
parameters: {
|
|
@@ -111,6 +164,13 @@ export type GetPathParameters<Ops extends Operations<Ops>, Op extends keyof Ops>
|
|
|
111
164
|
} ? {
|
|
112
165
|
[K in keyof PathParams]: PathParams[K] | undefined;
|
|
113
166
|
} : Record<string, never>;
|
|
167
|
+
export type GetQueryParameters<Ops extends Operations<Ops>, Op extends keyof Ops> = Ops[Op] extends {
|
|
168
|
+
parameters: {
|
|
169
|
+
query?: infer QueryParams;
|
|
170
|
+
};
|
|
171
|
+
} ? QueryParams extends Record<string, unknown> ? {
|
|
172
|
+
[K in keyof QueryParams]?: QueryParams[K];
|
|
173
|
+
} : Record<string, never> : Record<string, never>;
|
|
114
174
|
type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? A : B;
|
|
115
175
|
type IsReadonly<T, K extends keyof T> = IfEquals<Pick<T, K>, {
|
|
116
176
|
-readonly [Q in K]: T[K];
|
|
@@ -147,6 +207,7 @@ export type IsQueryOperation<Ops extends Operations<Ops>, Op extends keyof Ops>
|
|
|
147
207
|
* on your OpenAPI specification.
|
|
148
208
|
*
|
|
149
209
|
* @template Ops - The operations type from your OpenAPI specification
|
|
210
|
+
* @template AxiosConfig - The axios request configuration type (defaults to AxiosRequestConfig)
|
|
150
211
|
*
|
|
151
212
|
* @example
|
|
152
213
|
* ```typescript
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AACxG,OAAO,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|