@qualisero/openapi-endpoint 0.20.1 → 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/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
@@ -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;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,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"}
@@ -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":"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"}
1
+ {"version":3,"file":"openapi-query.d.ts","sourceRoot":"","sources":["../src/openapi-query.ts"],"names":[],"mappings":"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"}
@@ -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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qualisero/openapi-endpoint",
3
- "version": "0.20.1",
3
+ "version": "0.21.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/qualisero/openapi-endpoint.git"