@openapi-qraft/react 1.1.2 → 1.1.4
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/CHANGELOG.md +12 -0
- package/README.md +8 -2
- package/dist/QraftContext.d.ts +11 -0
- package/dist/QraftContext.d.ts.map +1 -0
- package/dist/QraftContext.js +4 -0
- package/dist/QraftContext.js.map +1 -0
- package/dist/RequestClient.d.ts +19 -0
- package/dist/RequestClient.d.ts.map +1 -0
- package/dist/RequestClient.js +2 -0
- package/dist/RequestClient.js.map +1 -0
- package/dist/ServiceOperation.d.ts +329 -0
- package/dist/ServiceOperation.d.ts.map +1 -0
- package/dist/ServiceOperation.js +2 -0
- package/dist/ServiceOperation.js.map +1 -0
- package/dist/callbacks/cancelQueries.d.ts +5 -0
- package/dist/callbacks/cancelQueries.d.ts.map +1 -0
- package/dist/callbacks/cancelQueries.js +5 -0
- package/dist/callbacks/cancelQueries.js.map +1 -0
- package/dist/callbacks/getInfiniteQueryData.d.ts +6 -0
- package/dist/callbacks/getInfiniteQueryData.d.ts.map +1 -0
- package/dist/callbacks/getInfiniteQueryData.js +8 -0
- package/dist/callbacks/getInfiniteQueryData.js.map +1 -0
- package/dist/callbacks/getInfiniteQueryKey.d.ts +5 -0
- package/dist/callbacks/getInfiniteQueryKey.d.ts.map +1 -0
- package/dist/callbacks/getInfiniteQueryKey.js +5 -0
- package/dist/callbacks/getInfiniteQueryKey.js.map +1 -0
- package/dist/callbacks/getMutationKey.d.ts +5 -0
- package/dist/callbacks/getMutationKey.d.ts.map +1 -0
- package/dist/callbacks/getMutationKey.js +5 -0
- package/dist/callbacks/getMutationKey.js.map +1 -0
- package/dist/callbacks/getQueryData.d.ts +5 -0
- package/dist/callbacks/getQueryData.d.ts.map +1 -0
- package/dist/callbacks/getQueryData.js +6 -0
- package/dist/callbacks/getQueryData.js.map +1 -0
- package/dist/callbacks/getQueryKey.d.ts +5 -0
- package/dist/callbacks/getQueryKey.d.ts.map +1 -0
- package/dist/callbacks/getQueryKey.js +5 -0
- package/dist/callbacks/getQueryKey.js.map +1 -0
- package/dist/callbacks/invalidateQueries.d.ts +5 -0
- package/dist/callbacks/invalidateQueries.d.ts.map +1 -0
- package/dist/callbacks/invalidateQueries.js +5 -0
- package/dist/callbacks/invalidateQueries.js.map +1 -0
- package/dist/callbacks/mutationFn.d.ts +4 -0
- package/dist/callbacks/mutationFn.d.ts.map +1 -0
- package/dist/callbacks/mutationFn.js +8 -0
- package/dist/callbacks/mutationFn.js.map +1 -0
- package/dist/callbacks/queryFn.d.ts +7 -0
- package/dist/callbacks/queryFn.d.ts.map +1 -0
- package/dist/callbacks/queryFn.js +9 -0
- package/dist/callbacks/queryFn.js.map +1 -0
- package/dist/callbacks/resetQueries.d.ts +5 -0
- package/dist/callbacks/resetQueries.d.ts.map +1 -0
- package/dist/callbacks/resetQueries.js +5 -0
- package/dist/callbacks/resetQueries.js.map +1 -0
- package/dist/callbacks/setInfiniteQueryData.d.ts +6 -0
- package/dist/callbacks/setInfiniteQueryData.d.ts.map +1 -0
- package/dist/callbacks/setInfiniteQueryData.js +9 -0
- package/dist/callbacks/setInfiniteQueryData.js.map +1 -0
- package/dist/callbacks/setQueryData.d.ts +5 -0
- package/dist/callbacks/setQueryData.d.ts.map +1 -0
- package/dist/callbacks/setQueryData.js +9 -0
- package/dist/callbacks/setQueryData.js.map +1 -0
- package/dist/callbacks/useInfiniteQuery.d.ts +7 -0
- package/dist/callbacks/useInfiniteQuery.d.ts.map +1 -0
- package/dist/callbacks/useInfiniteQuery.js +28 -0
- package/dist/callbacks/useInfiniteQuery.js.map +1 -0
- package/dist/callbacks/useMutation.d.ts +7 -0
- package/dist/callbacks/useMutation.d.ts.map +1 -0
- package/dist/callbacks/useMutation.js +39 -0
- package/dist/callbacks/useMutation.js.map +1 -0
- package/dist/callbacks/useMutationState.d.ts +7 -0
- package/dist/callbacks/useMutationState.d.ts.map +1 -0
- package/dist/callbacks/useMutationState.js +29 -0
- package/dist/callbacks/useMutationState.js.map +1 -0
- package/dist/callbacks/useQueries.d.ts +6 -0
- package/dist/callbacks/useQueries.d.ts.map +1 -0
- package/dist/callbacks/useQueries.js +37 -0
- package/dist/callbacks/useQueries.js.map +1 -0
- package/dist/callbacks/useQuery.d.ts +7 -0
- package/dist/callbacks/useQuery.d.ts.map +1 -0
- package/dist/callbacks/useQuery.js +27 -0
- package/dist/callbacks/useQuery.js.map +1 -0
- package/dist/callbacks/useSuspenseInfiniteQuery.d.ts +7 -0
- package/dist/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -0
- package/dist/callbacks/useSuspenseInfiniteQuery.js +28 -0
- package/dist/callbacks/useSuspenseInfiniteQuery.js.map +1 -0
- package/dist/callbacks/useSuspenseQueries.d.ts +6 -0
- package/dist/callbacks/useSuspenseQueries.d.ts.map +1 -0
- package/dist/callbacks/useSuspenseQueries.js +37 -0
- package/dist/callbacks/useSuspenseQueries.js.map +1 -0
- package/dist/callbacks/useSuspenseQuery.d.ts +7 -0
- package/dist/callbacks/useSuspenseQuery.d.ts.map +1 -0
- package/dist/callbacks/useSuspenseQuery.js +27 -0
- package/dist/callbacks/useSuspenseQuery.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts +11 -0
- package/dist/lib/callQueryClientMethodWithQueryFilters.d.ts.map +1 -0
- package/dist/lib/callQueryClientMethodWithQueryFilters.js +53 -0
- package/dist/lib/callQueryClientMethodWithQueryFilters.js.map +1 -0
- package/dist/lib/composeInfiniteQueryKey.d.ts +4 -0
- package/dist/lib/composeInfiniteQueryKey.d.ts.map +1 -0
- package/dist/lib/composeInfiniteQueryKey.js +4 -0
- package/dist/lib/composeInfiniteQueryKey.js.map +1 -0
- package/dist/lib/composeMutationKey.d.ts +10 -0
- package/dist/lib/composeMutationKey.d.ts.map +1 -0
- package/dist/lib/composeMutationKey.js +21 -0
- package/dist/lib/composeMutationKey.js.map +1 -0
- package/dist/lib/composeQueryKey.d.ts +4 -0
- package/dist/lib/composeQueryKey.d.ts.map +1 -0
- package/dist/lib/composeQueryKey.js +4 -0
- package/dist/lib/composeQueryKey.js.map +1 -0
- package/dist/lib/createRecursiveProxy.d.ts +9 -0
- package/dist/lib/createRecursiveProxy.d.ts.map +1 -0
- package/dist/lib/createRecursiveProxy.js +29 -0
- package/dist/lib/createRecursiveProxy.js.map +1 -0
- package/dist/lib/request.d.ts +32 -0
- package/dist/lib/request.d.ts.map +1 -0
- package/dist/lib/request.js +179 -0
- package/dist/lib/request.js.map +1 -0
- package/dist/lib/shelfMerge.d.ts +7 -0
- package/dist/lib/shelfMerge.d.ts.map +1 -0
- package/dist/lib/shelfMerge.js +28 -0
- package/dist/lib/shelfMerge.js.map +1 -0
- package/dist/qraftAPIClient.d.ts +36 -0
- package/dist/qraftAPIClient.d.ts.map +1 -0
- package/dist/qraftAPIClient.js +31 -0
- package/dist/qraftAPIClient.js.map +1 -0
- package/package.json +2 -2
- package/src/ServiceOperation.ts +45 -2
- package/src/callbacks/resetQueries.ts +22 -0
- package/src/lib/callQueryClientMethodWithQueryFilters.ts +36 -26
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { QueryClient } from '@tanstack/query-core';
|
|
2
|
+
import type { RequestClientSchema } from '../RequestClient.js';
|
|
3
|
+
/**
|
|
4
|
+
* Calls a query client method with query filters and options,
|
|
5
|
+
* and automatically composes the `QueryKey` based on the schema and parameters.
|
|
6
|
+
*/
|
|
7
|
+
export declare function callQueryClientMethodWithQueryFilters<QFMethod extends QueryFilterMethods>(queryFilterMethod: QFMethod, schema: RequestClientSchema, args: [QueryClient, ...Parameters<(typeof QueryClient.prototype)[QFMethod]>]): ReturnType<(typeof QueryClient.prototype)[QFMethod]>;
|
|
8
|
+
type QueryFiltersMethod<QFMethod extends keyof typeof QueryClient.prototype> = QFMethod;
|
|
9
|
+
type QueryFilterMethods = QueryFiltersMethod<'isFetching'> | QueryFiltersMethod<'getQueriesData'> | QueryFiltersMethod<'setQueriesData'> | QueryFiltersMethod<'removeQueries'> | QueryFiltersMethod<'resetQueries'> | QueryFiltersMethod<'cancelQueries'> | QueryFiltersMethod<'invalidateQueries'> | QueryFiltersMethod<'refetchQueries'>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=callQueryClientMethodWithQueryFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callQueryClientMethodWithQueryFilters.d.ts","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryFilters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D;;;GAGG;AACH,wBAAgB,qCAAqC,CACnD,QAAQ,SAAS,kBAAkB,EAEnC,iBAAiB,EAAE,QAAQ,EAC3B,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAC3E,UAAU,CAAC,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CA6BtD;AAsCD,KAAK,kBAAkB,CAAC,QAAQ,SAAS,MAAM,OAAO,WAAW,CAAC,SAAS,IACzE,QAAQ,CAAC;AAEX,KAAK,kBAAkB,GACnB,kBAAkB,CAAC,YAAY,CAAC,GAChC,kBAAkB,CAAC,gBAAgB,CAAC,GACpC,kBAAkB,CAAC,gBAAgB,CAAC,GACpC,kBAAkB,CAAC,eAAe,CAAC,GACnC,kBAAkB,CAAC,cAAc,CAAC,GAClC,kBAAkB,CAAC,eAAe,CAAC,GACnC,kBAAkB,CAAC,mBAAmB,CAAC,GACvC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { composeQueryKey } from './composeQueryKey.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calls a query client method with query filters and options,
|
|
4
|
+
* and automatically composes the `QueryKey` based on the schema and parameters.
|
|
5
|
+
*/
|
|
6
|
+
export function callQueryClientMethodWithQueryFilters(queryFilterMethod, schema, args) {
|
|
7
|
+
const queryClient = (args.length === 1
|
|
8
|
+
? args[0]
|
|
9
|
+
: args.length === 2
|
|
10
|
+
? args[1]
|
|
11
|
+
: args.length === 3
|
|
12
|
+
? args[2]
|
|
13
|
+
: undefined);
|
|
14
|
+
const filters = composeFilters(schema, args.length === 1 ? undefined : args[0]);
|
|
15
|
+
const options = args.length === 3 ? args[1] : undefined;
|
|
16
|
+
if (!queryClient)
|
|
17
|
+
throw new Error('queryClient is required');
|
|
18
|
+
if (!queryClient[queryFilterMethod])
|
|
19
|
+
throw new Error(`queryClient is invalid, ${queryFilterMethod} method does not exist`);
|
|
20
|
+
if (options)
|
|
21
|
+
// @ts-expect-error
|
|
22
|
+
return queryClient[queryFilterMethod](filters, options);
|
|
23
|
+
// @ts-expect-error
|
|
24
|
+
return queryClient[queryFilterMethod](filters);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Replaces the `parameters` field in the filters with a `queryKey` field based on the schema.
|
|
28
|
+
* If no filters are provided, a `queryKey` will be composed schema's base query key.
|
|
29
|
+
* @param schema
|
|
30
|
+
* @param filters
|
|
31
|
+
*/
|
|
32
|
+
function composeFilters(schema, filters) {
|
|
33
|
+
if (!filters) {
|
|
34
|
+
return {
|
|
35
|
+
queryKey: composeQueryKey(schema, undefined),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if ('queryKey' in filters) {
|
|
39
|
+
return filters;
|
|
40
|
+
}
|
|
41
|
+
if ('parameters' in filters) {
|
|
42
|
+
const { parameters, ...filtersWithoutParameters } = filters;
|
|
43
|
+
Object.assign(filtersWithoutParameters, {
|
|
44
|
+
queryKey: composeQueryKey(schema, parameters),
|
|
45
|
+
});
|
|
46
|
+
return filtersWithoutParameters;
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
...filters,
|
|
50
|
+
queryKey: composeQueryKey(schema, undefined),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=callQueryClientMethodWithQueryFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callQueryClientMethodWithQueryFilters.js","sourceRoot":"","sources":["../../src/lib/callQueryClientMethodWithQueryFilters.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,qCAAqC,CAGnD,iBAA2B,EAC3B,MAA2B,EAC3B,IAA4E;IAE5E,MAAM,WAAW,GAAG,CAClB,IAAI,CAAC,MAAM,KAAK,CAAC;QACf,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACT,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACT,CAAC,CAAC,SAAS,CACS,CAAC;IAE7B,MAAM,OAAO,GAAG,cAAc,CAC5B,MAAM,EACN,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxC,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExD,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,iBAAiB,wBAAwB,CACrE,CAAC;IAEJ,IAAI,OAAO;QACT,mBAAmB;QACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE1D,mBAAmB;IACnB,OAAO,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACrB,MAA2B,EAC3B,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,wBAAwB,EAAE,GAAG,OAAO,CAAC;QAE5D,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;YACtC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;SAC9C,CAAC,CAAC;QAEH,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RequestClientSchema } from '../RequestClient.js';
|
|
2
|
+
import { ServiceOperationInfiniteQueryKey } from '../ServiceOperation.js';
|
|
3
|
+
export declare function composeInfiniteQueryKey<TSchema extends RequestClientSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationInfiniteQueryKey<TSchema, TParams>;
|
|
4
|
+
//# sourceMappingURL=composeInfiniteQueryKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeInfiniteQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeInfiniteQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAE1E,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,mBAAmB,EACnC,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,gCAAgC,CAAC,OAAO,EAAE,OAAO,CAAC,CAEpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeInfiniteQueryKey.js","sourceRoot":"","sources":["../../src/lib/composeInfiniteQueryKey.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CAIrC,MAAe,EACf,UAA+B;IAE/B,OAAO,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,UAAU,IAAK,EAAc,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RequestClientSchema } from '../RequestClient.js';
|
|
2
|
+
import { ServiceOperationMutationKey } from '../ServiceOperation.js';
|
|
3
|
+
/**
|
|
4
|
+
* Omit `body` or `requestBody` from mutation parameters if exists
|
|
5
|
+
* and return the rest of the parameters
|
|
6
|
+
*/
|
|
7
|
+
export declare function composeMutationKey<TSchema extends RequestClientSchema, TParams = undefined>(schema: TSchema, parameters: undefined): ServiceOperationMutationKey<TSchema, undefined>;
|
|
8
|
+
export declare function composeMutationKey<TSchema extends RequestClientSchema, TParams>(schema: TSchema, parameters: TParams): ServiceOperationMutationKey<TSchema, TParams>;
|
|
9
|
+
export declare function omitMutationPayload<T>(params: T): {};
|
|
10
|
+
//# sourceMappingURL=composeMutationKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeMutationKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,mBAAmB,EACnC,OAAO,GAAG,SAAS,EAEnB,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,SAAS,GACpB,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACnD,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,mBAAmB,EACnC,OAAO,EAEP,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAClB,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAgBjD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,MAa/C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function composeMutationKey(schema, parameters) {
|
|
2
|
+
return parameters === undefined
|
|
3
|
+
? [{ url: schema.url, method: schema.method }]
|
|
4
|
+
: [
|
|
5
|
+
{
|
|
6
|
+
url: schema.url,
|
|
7
|
+
method: schema.method,
|
|
8
|
+
},
|
|
9
|
+
omitMutationPayload(parameters),
|
|
10
|
+
];
|
|
11
|
+
}
|
|
12
|
+
export function omitMutationPayload(params) {
|
|
13
|
+
if (!params || typeof params !== 'object')
|
|
14
|
+
throw new Error('`params` must be object');
|
|
15
|
+
if ('body' in params || 'requestBody' in params) {
|
|
16
|
+
const { body, requestBody, ...paramsRest } = params;
|
|
17
|
+
return paramsRest;
|
|
18
|
+
}
|
|
19
|
+
return params;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=composeMutationKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeMutationKey.js","sourceRoot":"","sources":["../../src/lib/composeMutationKey.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,kBAAkB,CAGhC,MAAe,EAAE,UAA+B;IAChD,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9C,CAAC,CAAC;YACE;gBACE,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;YACD,mBAAmB,CAAC,UAAU,CAAC;SAChC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAI,MAAS;IAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QACvC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE7C,IAAI,MAAM,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;QAChD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,MAG5C,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,MAAyC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RequestClientSchema } from '../RequestClient.js';
|
|
2
|
+
import { ServiceOperationQueryKey } from '../ServiceOperation.js';
|
|
3
|
+
export declare function composeQueryKey<TSchema extends RequestClientSchema, TParams>(schema: TSchema, parameters: TParams | undefined): ServiceOperationQueryKey<TSchema, TParams>;
|
|
4
|
+
//# sourceMappingURL=composeQueryKey.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeQueryKey.d.ts","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,wBAAgB,eAAe,CAAC,OAAO,SAAS,mBAAmB,EAAE,OAAO,EAC1E,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,OAAO,GAAG,SAAS,GAC9B,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAE5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composeQueryKey.js","sourceRoot":"","sources":["../../src/lib/composeQueryKey.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAC7B,MAAe,EACf,UAA+B;IAE/B,OAAO,CAAC,MAAM,EAAE,UAAU,IAAK,EAAc,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type ProxyApplyCallback = (path: string[], args: unknown[]) => unknown;
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
* If returns `undefined | null`, the proxy will continue to create a new proxy for the next key.
|
|
5
|
+
*/
|
|
6
|
+
type ProxyGetCallback = (path: string[], key: string) => unknown | undefined;
|
|
7
|
+
export declare function createRecursiveProxy(getCallback: ProxyGetCallback, applyCallback: ProxyApplyCallback, path: string[]): unknown;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=createRecursiveProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRecursiveProxy.d.ts","sourceRoot":"","sources":["../../src/lib/createRecursiveProxy.ts"],"names":[],"mappings":"AAAA,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AACvE;;;GAGG;AACH,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC;AAE7E,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,gBAAgB,EAC7B,aAAa,EAAE,kBAAkB,EACjC,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAgCT"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function createRecursiveProxy(getCallback, applyCallback, path) {
|
|
2
|
+
return new Proxy(noop, {
|
|
3
|
+
get(_obj, key) {
|
|
4
|
+
if (typeof key !== 'string' || key === 'then') {
|
|
5
|
+
// special case for if the proxy is accidentally treated
|
|
6
|
+
// like a PromiseLike (like in `Promise.resolve(proxy)`)
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
return (getCallback(path, key) ??
|
|
10
|
+
createRecursiveProxy(getCallback, applyCallback, [...path, key]));
|
|
11
|
+
},
|
|
12
|
+
apply(_1, _2, args) {
|
|
13
|
+
const functionName = path[path.length - 1];
|
|
14
|
+
const isCall = functionName === 'call';
|
|
15
|
+
const isApply = isCall ? false : functionName === 'apply';
|
|
16
|
+
return applyCallback(isApply || isCall ? path.slice(0, -1) : path, isApply
|
|
17
|
+
? args.length >= 2
|
|
18
|
+
? args[1]
|
|
19
|
+
: []
|
|
20
|
+
: isCall
|
|
21
|
+
? args.slice(1)
|
|
22
|
+
: args);
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function noop() {
|
|
27
|
+
// noop
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=createRecursiveProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRecursiveProxy.js","sourceRoot":"","sources":["../../src/lib/createRecursiveProxy.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,oBAAoB,CAClC,WAA6B,EAC7B,aAAiC,EACjC,IAAc;IAEd,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;QACrB,GAAG,CAAC,IAAI,EAAE,GAAG;YACX,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBAC9C,wDAAwD;gBACxD,wDAAwD;gBACxD,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,OAAO,CACL,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC;gBACtB,oBAAoB,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CACjE,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,YAAY,KAAK,MAAM,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC;YAE1D,OAAO,aAAa,CAClB,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAC5C,OAAO;gBACL,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC;oBAChB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBACT,CAAC,CAAC,EAAE;gBACN,CAAC,CAAC,MAAM;oBACN,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACf,CAAC,CAAC,IAAI,CACX,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,IAAI;IACX,OAAO;AACT,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @throws {error: object|string, response: Response} if the request fails
|
|
3
|
+
*/
|
|
4
|
+
export declare function request<T>(config: {
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
}, requestInit: APIRequestInit, { urlSerializer: urlSerializerFunc, bodySerializer: bodySerializerFunc, }: {
|
|
7
|
+
urlSerializer: typeof urlSerializer;
|
|
8
|
+
bodySerializer: typeof bodySerializer;
|
|
9
|
+
}): Promise<T>;
|
|
10
|
+
export declare function urlSerializer(config: {
|
|
11
|
+
baseUrl: string;
|
|
12
|
+
}, { url, parameters }: Pick<APIRequestInit, 'url' | 'parameters'>): string;
|
|
13
|
+
export declare function bodySerializer(options: {
|
|
14
|
+
method: APIRequestInit['method'];
|
|
15
|
+
mediaType: APIRequestInit['mediaType'];
|
|
16
|
+
body: APIRequestInit['body'];
|
|
17
|
+
}): string | Blob | FormData | undefined;
|
|
18
|
+
export type HeadersOptions = HeadersInit | Record<string, string | number | boolean | null | undefined>;
|
|
19
|
+
export type APIRequestInit = {
|
|
20
|
+
readonly method: 'get' | 'put' | 'post' | 'patch' | 'delete' | 'options' | 'head' | 'trace';
|
|
21
|
+
readonly url: string;
|
|
22
|
+
readonly parameters?: {
|
|
23
|
+
readonly path?: Record<string, any>;
|
|
24
|
+
readonly cookie?: Record<string, any>;
|
|
25
|
+
readonly header?: Record<string, any>;
|
|
26
|
+
readonly query?: Record<string, any>;
|
|
27
|
+
};
|
|
28
|
+
readonly body?: BodyInit | Record<string, unknown> | null;
|
|
29
|
+
readonly mediaType?: string;
|
|
30
|
+
readonly headers?: HeadersOptions;
|
|
31
|
+
} & Omit<RequestInit, 'headers' | 'method' | 'body'>;
|
|
32
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,WAAW,EAAE,cAAc,EAC3B,EACE,aAAa,EAAE,iBAAiB,EAChC,cAAc,EAAE,kBAAkB,GACnC,EAAE;IACD,aAAa,EAAE,OAAO,aAAa,CAAC;IACpC,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC,GACA,OAAO,CAAC,CAAC,CAAC,CA2CZ;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC3B,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,GAAG,YAAY,CAAC,GAC9D,MAAM,CAaR;AA6DD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CAC9B,wCAuBA;AAmFD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EACX,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,CAAC;IACZ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE;QACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACtC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;CACnC,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @throws {error: object|string, response: Response} if the request fails
|
|
3
|
+
*/
|
|
4
|
+
export async function request(config, requestInit, { urlSerializer: urlSerializerFunc, bodySerializer: bodySerializerFunc, }) {
|
|
5
|
+
const { method, url, parameters, mediaType, headers, body, ...requestInitRest } = requestInit;
|
|
6
|
+
const requestBody = bodySerializerFunc({
|
|
7
|
+
method,
|
|
8
|
+
mediaType,
|
|
9
|
+
body,
|
|
10
|
+
});
|
|
11
|
+
const response = await fetch(urlSerializerFunc(config, { url, parameters }), {
|
|
12
|
+
method: method.toUpperCase(),
|
|
13
|
+
body: requestBody,
|
|
14
|
+
headers: mergeHeaders({
|
|
15
|
+
Accept: 'application/json',
|
|
16
|
+
'Content-Type': mediaType ?? getBodyContentType(body),
|
|
17
|
+
}, headers, parameters?.header, requestBody instanceof FormData
|
|
18
|
+
? // remove `Content-Type` if serialized body is FormData; browser will correctly set Content-Type & boundary expression
|
|
19
|
+
{ 'Content-Type': null }
|
|
20
|
+
: undefined),
|
|
21
|
+
...requestInitRest,
|
|
22
|
+
});
|
|
23
|
+
// clone response to allow multiple reads
|
|
24
|
+
const clonedResponse = response.clone();
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
throw await getResponseBody(clonedResponse);
|
|
27
|
+
}
|
|
28
|
+
return (await getResponseBody(clonedResponse));
|
|
29
|
+
}
|
|
30
|
+
export function urlSerializer(config, { url, parameters }) {
|
|
31
|
+
const path = url.replace(/{(.*?)}/g, (substring, group) => {
|
|
32
|
+
if (parameters?.path?.hasOwnProperty(group)) {
|
|
33
|
+
return encodeURI(String(parameters?.path[group]));
|
|
34
|
+
}
|
|
35
|
+
return substring;
|
|
36
|
+
});
|
|
37
|
+
if (parameters?.query) {
|
|
38
|
+
return `${config.baseUrl}${path}${getQueryString(parameters.query)}`;
|
|
39
|
+
}
|
|
40
|
+
return `${config.baseUrl}${path}`;
|
|
41
|
+
}
|
|
42
|
+
function getQueryString(params) {
|
|
43
|
+
const qs = [];
|
|
44
|
+
const append = (key, value) => {
|
|
45
|
+
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
|
|
46
|
+
};
|
|
47
|
+
const process = (key, value) => {
|
|
48
|
+
if (typeof value === 'undefined' || value === null)
|
|
49
|
+
return;
|
|
50
|
+
if (Array.isArray(value)) {
|
|
51
|
+
value.forEach((v) => {
|
|
52
|
+
process(key, v);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
else if (typeof value === 'object') {
|
|
56
|
+
Object.entries(value).forEach(([k, v]) => {
|
|
57
|
+
process(`${key}[${k}]`, v);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
append(key, value);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
65
|
+
process(key, value);
|
|
66
|
+
});
|
|
67
|
+
if (qs.length > 0) {
|
|
68
|
+
return `?${qs.join('&')}`;
|
|
69
|
+
}
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
function mergeHeaders(...allHeaders) {
|
|
73
|
+
const headers = new Headers();
|
|
74
|
+
for (const headerSet of allHeaders) {
|
|
75
|
+
if (!headerSet || typeof headerSet !== 'object') {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const headersIterator = headerSet instanceof Headers
|
|
79
|
+
? headerSet.entries()
|
|
80
|
+
: Object.entries(headerSet);
|
|
81
|
+
for (const [headerKey, headerValue] of headersIterator) {
|
|
82
|
+
if (headerValue === null) {
|
|
83
|
+
headers.delete(headerKey);
|
|
84
|
+
}
|
|
85
|
+
else if (headerValue !== undefined) {
|
|
86
|
+
headers.set(headerKey, headerValue);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return headers;
|
|
91
|
+
}
|
|
92
|
+
export function bodySerializer(options) {
|
|
93
|
+
if (options.body === undefined)
|
|
94
|
+
return;
|
|
95
|
+
if (options.method === 'get' ||
|
|
96
|
+
options.method === 'head' ||
|
|
97
|
+
options.method === 'options')
|
|
98
|
+
return;
|
|
99
|
+
if (options.mediaType?.includes('/form-data'))
|
|
100
|
+
return getRequestBodyFormData(options);
|
|
101
|
+
if (!options.mediaType?.includes('/json') &&
|
|
102
|
+
(typeof options.body === 'string' ||
|
|
103
|
+
options.body instanceof Blob ||
|
|
104
|
+
options.body instanceof FormData)) {
|
|
105
|
+
return options.body;
|
|
106
|
+
}
|
|
107
|
+
return JSON.stringify(options.body);
|
|
108
|
+
}
|
|
109
|
+
function getRequestBodyFormData({ body, }) {
|
|
110
|
+
if (body instanceof FormData)
|
|
111
|
+
return body;
|
|
112
|
+
if (body === null)
|
|
113
|
+
return;
|
|
114
|
+
if (body instanceof Blob)
|
|
115
|
+
throw new Error('Blob not supported in form-data');
|
|
116
|
+
if (body instanceof ArrayBuffer)
|
|
117
|
+
throw new Error('ArrayBuffer not supported in form-data');
|
|
118
|
+
if (body instanceof URLSearchParams)
|
|
119
|
+
throw new Error('URLSearchParams not supported in form-data');
|
|
120
|
+
if (body instanceof ReadableStream)
|
|
121
|
+
throw new Error('ReadableStream not supported in form-data');
|
|
122
|
+
if (typeof body === 'string')
|
|
123
|
+
throw new Error('String not supported in form-data');
|
|
124
|
+
if (typeof body !== 'object')
|
|
125
|
+
throw new Error(`Unsupported body type ${typeof body} in form-data.`);
|
|
126
|
+
const formData = new FormData();
|
|
127
|
+
const process = (key, value) => {
|
|
128
|
+
if (typeof value === 'string' || value instanceof Blob) {
|
|
129
|
+
formData.append(key, value);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
formData.append(key, JSON.stringify(value));
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
Object.entries(body)
|
|
136
|
+
.filter(([_, value]) => typeof value !== 'undefined' && value !== null)
|
|
137
|
+
.forEach(([key, value]) => {
|
|
138
|
+
if (Array.isArray(value)) {
|
|
139
|
+
value.forEach((v) => process(key, v));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
process(key, value);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
return formData;
|
|
146
|
+
}
|
|
147
|
+
function getBodyContentType(body) {
|
|
148
|
+
if (!body)
|
|
149
|
+
return;
|
|
150
|
+
if (body instanceof Blob)
|
|
151
|
+
return body.type || 'application/octet-stream';
|
|
152
|
+
if (typeof body === 'string')
|
|
153
|
+
return 'text/plain';
|
|
154
|
+
if (!(body instanceof FormData))
|
|
155
|
+
return 'application/json';
|
|
156
|
+
}
|
|
157
|
+
async function getResponseBody(response) {
|
|
158
|
+
if (response.status === 204 || response.headers.get('Content-Length') === '0')
|
|
159
|
+
return undefined;
|
|
160
|
+
const contentType = response.headers.get('Content-Type')?.toLowerCase();
|
|
161
|
+
const isJSON = contentType?.includes('/json') || contentType?.includes('+json');
|
|
162
|
+
if (isJSON) {
|
|
163
|
+
// attempt to parse JSON for successful responses, otherwise fail
|
|
164
|
+
if (response.ok)
|
|
165
|
+
return response.json();
|
|
166
|
+
const errorFallbackResponse = response.clone(); // clone to allow multiple reads
|
|
167
|
+
return response.json().catch(() => {
|
|
168
|
+
if (typeof process !== 'undefined' &&
|
|
169
|
+
typeof process.env !== 'undefined' &&
|
|
170
|
+
process.env.NODE_ENV === 'development') {
|
|
171
|
+
console.warn('Failed to parse response body as JSON. Falling back to .text()');
|
|
172
|
+
}
|
|
173
|
+
// falling back to .text() when necessary for error messages
|
|
174
|
+
return errorFallbackResponse.text();
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return response.text();
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shelfMerge.d.ts","sourceRoot":"","sources":["../../src/lib/shelfMerge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,SAAI,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CA6BxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges objects with provided depth
|
|
3
|
+
* @param depth
|
|
4
|
+
* @param args
|
|
5
|
+
*/
|
|
6
|
+
export function shelfMerge(depth = 2, ...args) {
|
|
7
|
+
return args.reduce((acc, arg) => {
|
|
8
|
+
if (!arg || typeof arg !== 'object')
|
|
9
|
+
return acc;
|
|
10
|
+
Object.entries(arg).forEach(([key, value]) => {
|
|
11
|
+
if (typeof value !== 'object') {
|
|
12
|
+
acc[key] = value;
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (Array.isArray(value)) {
|
|
16
|
+
acc[key] = value;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (depth > 1) {
|
|
20
|
+
acc[key] = shelfMerge(depth - 1, acc[key], value);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
acc[key] = value;
|
|
24
|
+
});
|
|
25
|
+
return acc;
|
|
26
|
+
}, {});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=shelfMerge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shelfMerge.js","sourceRoot":"","sources":["../../src/lib/shelfMerge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAI,KAAK,GAAG,CAAC,EAAE,GAAG,IAAS;IACnD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QAEhD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,GAAG,CAAC,GAAY,CAAC,GAAG,UAAU,CAC5B,KAAK,GAAG,CAAC,EACT,GAAG,CAAC,GAAY,CAAC,EACjB,KAAK,CACG,CAAC;gBACX,OAAO;YACT,CAAC;YAED,GAAG,CAAC,GAAY,CAAC,GAAG,KAAc,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAO,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Context } from 'react';
|
|
2
|
+
import { QraftContextValue } from './QraftContext.js';
|
|
3
|
+
import type { RequestClientSchema } from './RequestClient.js';
|
|
4
|
+
export type QraftClientOptions = {
|
|
5
|
+
context?: Context<QraftContextValue>;
|
|
6
|
+
};
|
|
7
|
+
export declare const qraftAPIClient: <Services extends ServicesOutput<Services>, Callbacks extends ServicesCallbacks>(services: ServicesDeclaration<Services>, callbacks: Callbacks, options?: QraftClientOptions) => ServicesCallbacksFilter<Services, keyof Callbacks>;
|
|
8
|
+
type ServicesOutput<Services> = {
|
|
9
|
+
[service in keyof Services]: {
|
|
10
|
+
[method in keyof Services[service]]: {
|
|
11
|
+
schema: RequestClientSchema;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
type ServicesDeclaration<Services extends ServicesOutput<Services>> = {
|
|
16
|
+
[service in keyof Services]: {
|
|
17
|
+
[method in keyof Services[service]]: {
|
|
18
|
+
schema: Services[service][method]['schema'];
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
type ServicesCallbacks = Record<string, (...rest: any[]) => any>;
|
|
23
|
+
type ServicesCallbacksFilter<Services extends ServicesOutput<Services>, Callbacks> = Services extends {
|
|
24
|
+
[serviceName in keyof Services]: {
|
|
25
|
+
[method in keyof Services[serviceName]]: {
|
|
26
|
+
schema: RequestClientSchema;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
} ? {
|
|
30
|
+
[serviceName in keyof Services]: {
|
|
31
|
+
[method in keyof Services[serviceName]]: Pick<Services[serviceName][method], FilterKeys<keyof Services[serviceName][method], Callbacks | 'schema' | 'types'>>;
|
|
32
|
+
};
|
|
33
|
+
} : never;
|
|
34
|
+
type FilterKeys<T, K> = K extends T ? K : never;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=qraftAPIClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qraftAPIClient.d.ts","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,cAAc,4JAMf,kBAAkB,uDAgC7B,CAAC;AAeF,KAAK,cAAc,CAAC,QAAQ,IAAI;KAC7B,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACrE;CACF,CAAC;AAEF,KAAK,mBAAmB,CAAC,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,IAAI;KACnE,OAAO,IAAI,MAAM,QAAQ,GAAG;SAC1B,MAAM,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG;YACnC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC7C;KACF;CACF,CAAC;AAEF,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAEjE,KAAK,uBAAuB,CAC1B,QAAQ,SAAS,cAAc,CAAC,QAAQ,CAAC,EACzC,SAAS,IACP,QAAQ,SAAS;KAClB,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,EAAE,mBAAmB,CAAA;SAAE;KACzE;CACF,GACG;KACG,WAAW,IAAI,MAAM,QAAQ,GAAG;SAC9B,MAAM,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,CAC3C,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAC7B,UAAU,CACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EACnC,SAAS,GAAG,QAAQ,GAAG,OAAO,CAC/B,CACF;KACF;CACF,GACD,KAAK,CAAC;AAEV,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { createRecursiveProxy } from './lib/createRecursiveProxy.js';
|
|
2
|
+
export const qraftAPIClient = (services, callbacks, options) => {
|
|
3
|
+
return createRecursiveProxy((getPath, key) => {
|
|
4
|
+
if (getPath.length !== 2 || key !== 'schema')
|
|
5
|
+
return;
|
|
6
|
+
const serviceOperation = getByPath(services, getPath);
|
|
7
|
+
if (!isServiceOperation(serviceOperation))
|
|
8
|
+
throw new Error(`Service operation not found: ${getPath.join('.')}`);
|
|
9
|
+
return serviceOperation.schema;
|
|
10
|
+
}, (applyPath, args) => {
|
|
11
|
+
const path = applyPath.slice(0, -1);
|
|
12
|
+
const serviceOperation = getByPath(services, path);
|
|
13
|
+
if (!isServiceOperation(serviceOperation))
|
|
14
|
+
throw new Error(`Service operation not found: ${path.join('.')}`);
|
|
15
|
+
// The last arg is for instance `.useMutation` or `.useQuery()`
|
|
16
|
+
const functionName = applyPath[applyPath.length - 1];
|
|
17
|
+
if (!(functionName in callbacks))
|
|
18
|
+
throw new Error(`Function ${functionName} is not supported`);
|
|
19
|
+
return callbacks[functionName](options, serviceOperation.schema, args);
|
|
20
|
+
}, []);
|
|
21
|
+
};
|
|
22
|
+
function isServiceOperation(input) {
|
|
23
|
+
return input !== null && typeof input === 'object' && 'schema' in input;
|
|
24
|
+
}
|
|
25
|
+
function getByPath(obj, path) {
|
|
26
|
+
return path.reduce((acc, key) => {
|
|
27
|
+
if (acc && typeof acc === 'object' && key in acc)
|
|
28
|
+
return acc[key];
|
|
29
|
+
}, obj);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=qraftAPIClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qraftAPIClient.js","sourceRoot":"","sources":["../src/qraftAPIClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAQrE,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,QAAuC,EACvC,SAAoB,EACpB,OAA4B,EACwB,EAAE;IACtD,OAAO,oBAAoB,CACzB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;QACf,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO;QAErD,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,gBAAgB,CAAC,MAAM,CAAC;IACjC,CAAC,EACD,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE;QAClB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEnD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEpE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,mBAAmB,CAAC,CAAC;QAE/D,OAAO,SAAS,CAAC,YAA+B,CAAC,CAC/C,OAAO,EACP,gBAAgB,CAAC,MAAM,EACvB,IAAI,CACL,CAAC;IACJ,CAAC,EACD,EAAE,CACM,CAAC;AACb,CAAC,CAAC;AAEF,SAAS,kBAAkB,CACzB,KAAc;IAEd,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC1E,CAAC;AAED,SAAS,SAAS,CAAC,GAA4B,EAAE,IAAc;IAC7D,OAAO,IAAI,CAAC,MAAM,CAAU,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG;YAC9C,OAAO,GAAG,CAAC,GAAuB,CAAC,CAAC;IACxC,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openapi-qraft/react",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"description": "API client for React, providing type-safe requests and dynamic Tanstack Query React Hooks via a modular, Proxy-based architecture.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "rimraf dist/ && tsc --project tsconfig.build.json",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"type": "module",
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@openapi-qraft/cli": "~1.1.
|
|
17
|
+
"@openapi-qraft/cli": "~1.1.4",
|
|
18
18
|
"@openapi-qraft/openapi-typescript": "^1.0.0",
|
|
19
19
|
"@tanstack/react-query": "^5.17.3",
|
|
20
20
|
"@testing-library/jest-dom": "^5.17.0",
|