@qualisero/openapi-endpoint 0.20.0 → 0.21.1
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/dist/cli.js +0 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/openapi-query.d.ts +4 -2
- package/dist/openapi-query.d.ts.map +1 -1
- package/dist/openapi-query.js +22 -4
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -709,8 +709,6 @@ function generateApiSchemasContent(openApiSpec) {
|
|
|
709
709
|
return `// Auto-generated from OpenAPI specification
|
|
710
710
|
// Do not edit this file manually
|
|
711
711
|
|
|
712
|
-
import type { components } from './openapi-types.js'
|
|
713
|
-
|
|
714
712
|
// No schemas found in the OpenAPI specification
|
|
715
713
|
`;
|
|
716
714
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export type { QueryReturn, LazyQueryReturn } from './openapi-query';
|
|
|
5
5
|
export type { MutationReturn } from './openapi-mutation';
|
|
6
6
|
export type { EndpointConfig, QueryOptions, LazyQueryFetchOptions, MutationOptions, MutationVars, CacheInvalidationOptions, Refetchable, MutateFn, MutateAsyncFn, MutateAsyncReturn, ReactiveOr, NoExcessReturn, AxiosRequestConfigExtended, ApiResponse, ApiResponseStrict, ApiRequest, ApiPathParams, ApiPathParamsInput, ApiQueryParams, } from './types';
|
|
7
7
|
export { HttpMethod, QUERY_METHODS, MUTATION_METHODS, isQueryMethod, isMutationMethod } from './types';
|
|
8
|
-
export type { Ref, ComputedRef } from 'vue';
|
|
8
|
+
export type { Ref, ComputedRef, ShallowRef } from 'vue';
|
|
9
9
|
export type { MaybeRefOrGetter } from '@vue/reactivity';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAKtD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAKxD,YAAY,EAEV,cAAc,EAGd,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,YAAY,EAGZ,wBAAwB,EACxB,WAAW,EAGX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAGjB,UAAU,EACV,cAAc,EAGd,0BAA0B,EAG1B,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAKhB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAKtG,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAKtD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAKxD,YAAY,EAEV,cAAc,EAGd,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,YAAY,EAGZ,wBAAwB,EACxB,WAAW,EAGX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAGjB,UAAU,EACV,cAAc,EAGd,0BAA0B,EAG1B,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAKhB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAKtG,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/openapi-query.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ComputedRef } from 'vue';
|
|
1
|
+
import { type ComputedRef, type ShallowRef } from 'vue';
|
|
2
2
|
import type { MaybeRefOrGetter } from '@vue/reactivity';
|
|
3
3
|
import { type UseQueryReturnType } from '@tanstack/vue-query';
|
|
4
4
|
import { type EndpointConfig, type QueryOptions, type LazyQueryFetchOptions } from './types';
|
|
@@ -26,6 +26,8 @@ export type QueryReturn<TResponse, TPathParams extends Record<string, unknown> =
|
|
|
26
26
|
pathParams: ComputedRef<TPathParams>;
|
|
27
27
|
/** Register a callback for when data loads successfully for the first time. */
|
|
28
28
|
onLoad: (callback: (data: TResponse) => void) => void;
|
|
29
|
+
/** Response headers from the last successful query. */
|
|
30
|
+
responseHeaders: ShallowRef<Record<string, string>>;
|
|
29
31
|
};
|
|
30
32
|
/**
|
|
31
33
|
* Return type of `useLazyQuery`.
|
|
@@ -40,7 +42,7 @@ export type QueryReturn<TResponse, TPathParams extends Record<string, unknown> =
|
|
|
40
42
|
*
|
|
41
43
|
* @group Types
|
|
42
44
|
*/
|
|
43
|
-
export type LazyQueryReturn<TResponse, TPathParams extends Record<string, unknown> = Record<string, never>, TQueryParams extends Record<string, unknown> = Record<string, never>> = Pick<QueryReturn<TResponse, TPathParams>, 'data' | 'isPending' | 'isSuccess' | 'isError' | 'error' | 'isEnabled' | 'pathParams' | 'queryKey'> & {
|
|
45
|
+
export type LazyQueryReturn<TResponse, TPathParams extends Record<string, unknown> = Record<string, never>, TQueryParams extends Record<string, unknown> = Record<string, never>> = Pick<QueryReturn<TResponse, TPathParams>, 'data' | 'isPending' | 'isSuccess' | 'isError' | 'error' | 'isEnabled' | 'pathParams' | 'queryKey' | 'responseHeaders'> & {
|
|
44
46
|
/**
|
|
45
47
|
* Execute a query imperatively.
|
|
46
48
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-query.d.ts","sourceRoot":"","sources":["../src/openapi-query.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"openapi-query.d.ts","sourceRoot":"","sources":["../src/openapi-query.ts"],"names":[],"mappings":"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"}
|
package/dist/openapi-query.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed, watch, toValue } from 'vue';
|
|
1
|
+
import { computed, shallowRef, watch, toValue } from 'vue';
|
|
2
2
|
import { useQuery } from '@tanstack/vue-query';
|
|
3
3
|
import { isAxiosError } from 'axios';
|
|
4
4
|
import { isQueryMethod, } from './types.js';
|
|
@@ -8,7 +8,7 @@ import { normalizeParamsOptions, useResolvedOperation, generateQueryKey } from '
|
|
|
8
8
|
* Extracted to avoid duplicating axios call logic and error handling.
|
|
9
9
|
* @internal
|
|
10
10
|
*/
|
|
11
|
-
function buildQueryFn(config, getResolvedPath, getQueryParams, hookAxiosOptions, callAxiosOptions, errorHandler) {
|
|
11
|
+
function buildQueryFn(config, getResolvedPath, getQueryParams, hookAxiosOptions, callAxiosOptions, errorHandler, headersSink) {
|
|
12
12
|
return async () => {
|
|
13
13
|
try {
|
|
14
14
|
const response = await config.axios({
|
|
@@ -26,6 +26,20 @@ function buildQueryFn(config, getResolvedPath, getQueryParams, hookAxiosOptions,
|
|
|
26
26
|
...(callAxiosOptions?.headers || {}),
|
|
27
27
|
},
|
|
28
28
|
});
|
|
29
|
+
if (headersSink) {
|
|
30
|
+
const raw = response.headers;
|
|
31
|
+
if (raw && typeof raw === 'object') {
|
|
32
|
+
const plain = {};
|
|
33
|
+
for (const [k, v] of Object.entries(raw)) {
|
|
34
|
+
if (v != null)
|
|
35
|
+
plain[k] = String(v);
|
|
36
|
+
}
|
|
37
|
+
headersSink.value = plain;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
headersSink.value = {};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
29
43
|
return response.data;
|
|
30
44
|
}
|
|
31
45
|
catch (error) {
|
|
@@ -65,9 +79,10 @@ export function useEndpointQuery(config, pathParams, options) {
|
|
|
65
79
|
const baseEnabled = enabledInit !== undefined ? toValue(enabledInit) : true;
|
|
66
80
|
return baseEnabled && isResolved.value;
|
|
67
81
|
});
|
|
82
|
+
const responseHeaders = shallowRef({});
|
|
68
83
|
const queryOptions = {
|
|
69
84
|
queryKey: queryKey,
|
|
70
|
-
queryFn: buildQueryFn(config, () => resolvedPath.value, () => resolvedQueryParams.value, axiosOptions, undefined, errorHandler),
|
|
85
|
+
queryFn: buildQueryFn(config, () => resolvedPath.value, () => resolvedQueryParams.value, axiosOptions, undefined, errorHandler, responseHeaders),
|
|
71
86
|
enabled: isEnabled,
|
|
72
87
|
staleTime: 1000 * 60,
|
|
73
88
|
retry: (_failureCount, error) => {
|
|
@@ -110,6 +125,7 @@ export function useEndpointQuery(config, pathParams, options) {
|
|
|
110
125
|
queryKey,
|
|
111
126
|
onLoad,
|
|
112
127
|
pathParams: resolvedPathParams,
|
|
128
|
+
responseHeaders,
|
|
113
129
|
};
|
|
114
130
|
}
|
|
115
131
|
/**
|
|
@@ -145,6 +161,7 @@ export function useEndpointLazyQuery(config, pathParams, options) {
|
|
|
145
161
|
enabled: false,
|
|
146
162
|
staleTime: useQueryOptions?.staleTime ?? Infinity,
|
|
147
163
|
});
|
|
164
|
+
const responseHeaders = shallowRef({});
|
|
148
165
|
const fetch = async (fetchOptions) => {
|
|
149
166
|
if (!isResolved.value) {
|
|
150
167
|
throw new Error(`Cannot fetch '${config.path}': path parameters not resolved. ` + `Resolved path: '${resolvedPath.value}'`);
|
|
@@ -155,7 +172,7 @@ export function useEndpointLazyQuery(config, pathParams, options) {
|
|
|
155
172
|
: generateQueryKey(resolvedPath.value);
|
|
156
173
|
return config.queryClient.fetchQuery({
|
|
157
174
|
queryKey: fetchQueryKey,
|
|
158
|
-
queryFn: buildQueryFn(config, () => resolvedPath.value, () => (qParams ?? {}), axiosOptions, fetchOptions?.axiosOptions, errorHandler),
|
|
175
|
+
queryFn: buildQueryFn(config, () => resolvedPath.value, () => (qParams ?? {}), axiosOptions, fetchOptions?.axiosOptions, errorHandler, responseHeaders),
|
|
159
176
|
staleTime: useQueryOptions?.staleTime ?? Infinity,
|
|
160
177
|
});
|
|
161
178
|
};
|
|
@@ -168,6 +185,7 @@ export function useEndpointLazyQuery(config, pathParams, options) {
|
|
|
168
185
|
isEnabled: query.isEnabled,
|
|
169
186
|
pathParams: resolvedPathParams,
|
|
170
187
|
queryKey: queryKey,
|
|
188
|
+
responseHeaders,
|
|
171
189
|
fetch,
|
|
172
190
|
};
|
|
173
191
|
}
|