@qualisero/openapi-endpoint 0.20.1 → 0.21.2
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 +6 -0
- 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
|
@@ -380,6 +380,12 @@ function extractEnumsFromSpec(openApiSpec) {
|
|
|
380
380
|
}
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
|
+
// Export enum schemas directly from components.schemas
|
|
384
|
+
// This MUST come before property/parameter extraction so the schema name becomes primary
|
|
385
|
+
// and operation-specific generated names become aliases
|
|
386
|
+
for (const [schemaName, enumValues] of schemaEnumLookup) {
|
|
387
|
+
addEnumIfUnique(schemaName, enumValues, `components.schemas.${schemaName}`, enums, seenEnumValues);
|
|
388
|
+
}
|
|
383
389
|
// Helper to resolve enum values from a schema (inline or $ref)
|
|
384
390
|
function resolveEnumValues(schema) {
|
|
385
391
|
// Inline enum
|
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
|
}
|