@openapi-qraft/react 1.14.0 → 2.0.0-next.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/CHANGELOG.md +52 -0
- package/README.md +3 -6
- package/dist/cjs/Unstable_QraftSecureRequestFn.cjs.map +1 -1
- package/dist/cjs/callbacks/cancelQueries.cjs +1 -1
- package/dist/cjs/callbacks/cancelQueries.cjs.map +1 -1
- package/dist/cjs/callbacks/fetchInfiniteQuery.cjs +2 -2
- package/dist/cjs/callbacks/fetchInfiniteQuery.cjs.map +1 -1
- package/dist/cjs/callbacks/fetchQuery.cjs +2 -2
- package/dist/cjs/callbacks/fetchQuery.cjs.map +1 -1
- package/dist/cjs/callbacks/getInfiniteQueryData.cjs +3 -2
- package/dist/cjs/callbacks/getInfiniteQueryData.cjs.map +1 -1
- package/dist/cjs/callbacks/getInfiniteQueryKey.cjs +1 -1
- package/dist/cjs/callbacks/getInfiniteQueryKey.cjs.map +1 -1
- package/dist/cjs/callbacks/getInfiniteQueryState.cjs +3 -2
- package/dist/cjs/callbacks/getInfiniteQueryState.cjs.map +1 -1
- package/dist/cjs/callbacks/getMutationKey.cjs +1 -1
- package/dist/cjs/callbacks/getMutationKey.cjs.map +1 -1
- package/dist/cjs/callbacks/getQueriesData.cjs +2 -2
- package/dist/cjs/callbacks/getQueriesData.cjs.map +1 -1
- package/dist/cjs/callbacks/getQueryData.cjs +3 -2
- package/dist/cjs/callbacks/getQueryData.cjs.map +1 -1
- package/dist/cjs/callbacks/getQueryKey.cjs +1 -1
- package/dist/cjs/callbacks/getQueryKey.cjs.map +1 -1
- package/dist/cjs/callbacks/getQueryState.cjs +3 -2
- package/dist/cjs/callbacks/getQueryState.cjs.map +1 -1
- package/dist/cjs/callbacks/index.cjs +0 -4
- package/dist/cjs/callbacks/index.cjs.map +1 -1
- package/dist/cjs/callbacks/invalidateQueries.cjs +1 -1
- package/dist/cjs/callbacks/invalidateQueries.cjs.map +1 -1
- package/dist/cjs/callbacks/isFetching.cjs +1 -1
- package/dist/cjs/callbacks/isFetching.cjs.map +1 -1
- package/dist/cjs/callbacks/isMutating.cjs +2 -2
- package/dist/cjs/callbacks/isMutating.cjs.map +1 -1
- package/dist/cjs/callbacks/operationInvokeFn.cjs +7 -5
- package/dist/cjs/callbacks/operationInvokeFn.cjs.map +1 -1
- package/dist/cjs/callbacks/prefetchInfiniteQuery.cjs +2 -2
- package/dist/cjs/callbacks/prefetchInfiniteQuery.cjs.map +1 -1
- package/dist/cjs/callbacks/prefetchQuery.cjs +2 -2
- package/dist/cjs/callbacks/prefetchQuery.cjs.map +1 -1
- package/dist/cjs/callbacks/refetchQueries.cjs +1 -1
- package/dist/cjs/callbacks/refetchQueries.cjs.map +1 -1
- package/dist/cjs/callbacks/removeQueries.cjs +2 -2
- package/dist/cjs/callbacks/removeQueries.cjs.map +1 -1
- package/dist/cjs/callbacks/resetQueries.cjs +1 -1
- package/dist/cjs/callbacks/resetQueries.cjs.map +1 -1
- package/dist/cjs/callbacks/setInfiniteQueryData.cjs +2 -1
- package/dist/cjs/callbacks/setInfiniteQueryData.cjs.map +1 -1
- package/dist/cjs/callbacks/setQueriesData.cjs +2 -2
- package/dist/cjs/callbacks/setQueriesData.cjs.map +1 -1
- package/dist/cjs/callbacks/setQueryData.cjs +3 -2
- package/dist/cjs/callbacks/setQueryData.cjs.map +1 -1
- package/dist/cjs/callbacks/useInfiniteQuery.cjs.map +1 -1
- package/dist/cjs/callbacks/useIsFetching.cjs +2 -3
- package/dist/cjs/callbacks/useIsFetching.cjs.map +1 -1
- package/dist/cjs/callbacks/useIsMutating.cjs +2 -3
- package/dist/cjs/callbacks/useIsMutating.cjs.map +1 -1
- package/dist/cjs/callbacks/useMutation.cjs +10 -14
- package/dist/cjs/callbacks/useMutation.cjs.map +1 -1
- package/dist/cjs/callbacks/useMutationState.cjs +2 -3
- package/dist/cjs/callbacks/useMutationState.cjs.map +1 -1
- package/dist/cjs/callbacks/useQueries.cjs +6 -10
- package/dist/cjs/callbacks/useQueries.cjs.map +1 -1
- package/dist/cjs/callbacks/useQuery.cjs.map +1 -1
- package/dist/cjs/callbacks/useSuspenseInfiniteQuery.cjs.map +1 -1
- package/dist/cjs/callbacks/useSuspenseQueries.cjs +6 -10
- package/dist/cjs/callbacks/useSuspenseQueries.cjs.map +1 -1
- package/dist/cjs/callbacks/useSuspenseQuery.cjs.map +1 -1
- package/dist/cjs/index.cjs +0 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/lib/callQueryClientFetchMethod.cjs +15 -22
- package/dist/cjs/lib/callQueryClientFetchMethod.cjs.map +1 -1
- package/dist/cjs/lib/callQueryClientMethodWithMutationFilters.cjs +4 -6
- package/dist/cjs/lib/callQueryClientMethodWithMutationFilters.cjs.map +1 -1
- package/dist/cjs/lib/callQueryClientMethodWithQueryFilters.cjs +4 -6
- package/dist/cjs/lib/callQueryClientMethodWithQueryFilters.cjs.map +1 -1
- package/dist/cjs/lib/callQueryClientMethodWithQueryKey.cjs +4 -6
- package/dist/cjs/lib/callQueryClientMethodWithQueryKey.cjs.map +1 -1
- package/dist/cjs/lib/requestFn.cjs +35 -21
- package/dist/cjs/lib/requestFn.cjs.map +1 -1
- package/dist/cjs/lib/requestFnResponseResolver.cjs +9 -0
- package/dist/cjs/lib/requestFnResponseResolver.cjs.map +1 -0
- package/dist/cjs/lib/useComposeUseQueryOptions.cjs +6 -10
- package/dist/cjs/lib/useComposeUseQueryOptions.cjs.map +1 -1
- package/dist/cjs/qraftAPIClient.cjs +13 -3
- package/dist/cjs/qraftAPIClient.cjs.map +1 -1
- package/dist/esm/Unstable_QraftSecureRequestFn.js.map +1 -1
- package/dist/esm/callbacks/cancelQueries.js +1 -1
- package/dist/esm/callbacks/cancelQueries.js.map +1 -1
- package/dist/esm/callbacks/fetchInfiniteQuery.js +2 -2
- package/dist/esm/callbacks/fetchInfiniteQuery.js.map +1 -1
- package/dist/esm/callbacks/fetchQuery.js +2 -2
- package/dist/esm/callbacks/fetchQuery.js.map +1 -1
- package/dist/esm/callbacks/getInfiniteQueryData.js +3 -2
- package/dist/esm/callbacks/getInfiniteQueryData.js.map +1 -1
- package/dist/esm/callbacks/getInfiniteQueryKey.js +1 -1
- package/dist/esm/callbacks/getInfiniteQueryKey.js.map +1 -1
- package/dist/esm/callbacks/getInfiniteQueryState.js +3 -2
- package/dist/esm/callbacks/getInfiniteQueryState.js.map +1 -1
- package/dist/esm/callbacks/getMutationKey.js +1 -1
- package/dist/esm/callbacks/getMutationKey.js.map +1 -1
- package/dist/esm/callbacks/getQueriesData.js +2 -2
- package/dist/esm/callbacks/getQueriesData.js.map +1 -1
- package/dist/esm/callbacks/getQueryData.js +3 -2
- package/dist/esm/callbacks/getQueryData.js.map +1 -1
- package/dist/esm/callbacks/getQueryKey.js +1 -1
- package/dist/esm/callbacks/getQueryKey.js.map +1 -1
- package/dist/esm/callbacks/getQueryState.js +3 -2
- package/dist/esm/callbacks/getQueryState.js.map +1 -1
- package/dist/esm/callbacks/index.js +0 -2
- package/dist/esm/callbacks/index.js.map +1 -1
- package/dist/esm/callbacks/invalidateQueries.js +1 -1
- package/dist/esm/callbacks/invalidateQueries.js.map +1 -1
- package/dist/esm/callbacks/isFetching.js +1 -1
- package/dist/esm/callbacks/isFetching.js.map +1 -1
- package/dist/esm/callbacks/isMutating.js +2 -2
- package/dist/esm/callbacks/isMutating.js.map +1 -1
- package/dist/esm/callbacks/operationInvokeFn.js +7 -5
- package/dist/esm/callbacks/operationInvokeFn.js.map +1 -1
- package/dist/esm/callbacks/prefetchInfiniteQuery.js +2 -2
- package/dist/esm/callbacks/prefetchInfiniteQuery.js.map +1 -1
- package/dist/esm/callbacks/prefetchQuery.js +2 -2
- package/dist/esm/callbacks/prefetchQuery.js.map +1 -1
- package/dist/esm/callbacks/refetchQueries.js +1 -1
- package/dist/esm/callbacks/refetchQueries.js.map +1 -1
- package/dist/esm/callbacks/removeQueries.js +2 -2
- package/dist/esm/callbacks/removeQueries.js.map +1 -1
- package/dist/esm/callbacks/resetQueries.js +1 -1
- package/dist/esm/callbacks/resetQueries.js.map +1 -1
- package/dist/esm/callbacks/setInfiniteQueryData.js +2 -1
- package/dist/esm/callbacks/setInfiniteQueryData.js.map +1 -1
- package/dist/esm/callbacks/setQueriesData.js +2 -2
- package/dist/esm/callbacks/setQueriesData.js.map +1 -1
- package/dist/esm/callbacks/setQueryData.js +3 -2
- package/dist/esm/callbacks/setQueryData.js.map +1 -1
- package/dist/esm/callbacks/useInfiniteQuery.js.map +1 -1
- package/dist/esm/callbacks/useIsFetching.js +2 -3
- package/dist/esm/callbacks/useIsFetching.js.map +1 -1
- package/dist/esm/callbacks/useIsMutating.js +2 -3
- package/dist/esm/callbacks/useIsMutating.js.map +1 -1
- package/dist/esm/callbacks/useMutation.js +10 -14
- package/dist/esm/callbacks/useMutation.js.map +1 -1
- package/dist/esm/callbacks/useMutationState.js +2 -3
- package/dist/esm/callbacks/useMutationState.js.map +1 -1
- package/dist/esm/callbacks/useQueries.js +6 -10
- package/dist/esm/callbacks/useQueries.js.map +1 -1
- package/dist/esm/callbacks/useQuery.js.map +1 -1
- package/dist/esm/callbacks/useSuspenseInfiniteQuery.js.map +1 -1
- package/dist/esm/callbacks/useSuspenseQueries.js +6 -10
- package/dist/esm/callbacks/useSuspenseQueries.js.map +1 -1
- package/dist/esm/callbacks/useSuspenseQuery.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/callQueryClientFetchMethod.js +15 -22
- package/dist/esm/lib/callQueryClientFetchMethod.js.map +1 -1
- package/dist/esm/lib/callQueryClientMethodWithMutationFilters.js +4 -6
- package/dist/esm/lib/callQueryClientMethodWithMutationFilters.js.map +1 -1
- package/dist/esm/lib/callQueryClientMethodWithQueryFilters.js +4 -6
- package/dist/esm/lib/callQueryClientMethodWithQueryFilters.js.map +1 -1
- package/dist/esm/lib/callQueryClientMethodWithQueryKey.js +4 -6
- package/dist/esm/lib/callQueryClientMethodWithQueryKey.js.map +1 -1
- package/dist/esm/lib/requestFn.js +35 -21
- package/dist/esm/lib/requestFn.js.map +1 -1
- package/dist/esm/lib/requestFnResponseResolver.js +7 -0
- package/dist/esm/lib/requestFnResponseResolver.js.map +1 -0
- package/dist/esm/lib/useComposeUseQueryOptions.js +6 -10
- package/dist/esm/lib/useComposeUseQueryOptions.js.map +1 -1
- package/dist/esm/qraftAPIClient.js +13 -3
- package/dist/esm/qraftAPIClient.js.map +1 -1
- package/dist/types/Unstable_QraftSecureRequestFn.d.ts +3 -3
- package/dist/types/Unstable_QraftSecureRequestFn.d.ts.map +1 -1
- package/dist/types/callbacks/cancelQueries.d.ts +3 -3
- package/dist/types/callbacks/cancelQueries.d.ts.map +1 -1
- package/dist/types/callbacks/fetchInfiniteQuery.d.ts +3 -3
- package/dist/types/callbacks/fetchInfiniteQuery.d.ts.map +1 -1
- package/dist/types/callbacks/fetchQuery.d.ts +3 -3
- package/dist/types/callbacks/fetchQuery.d.ts.map +1 -1
- package/dist/types/callbacks/getInfiniteQueryData.d.ts +2 -2
- package/dist/types/callbacks/getInfiniteQueryData.d.ts.map +1 -1
- package/dist/types/callbacks/getInfiniteQueryKey.d.ts +2 -2
- package/dist/types/callbacks/getInfiniteQueryKey.d.ts.map +1 -1
- package/dist/types/callbacks/getInfiniteQueryState.d.ts +2 -2
- package/dist/types/callbacks/getInfiniteQueryState.d.ts.map +1 -1
- package/dist/types/callbacks/getMutationKey.d.ts +3 -3
- package/dist/types/callbacks/getMutationKey.d.ts.map +1 -1
- package/dist/types/callbacks/getQueriesData.d.ts +3 -3
- package/dist/types/callbacks/getQueriesData.d.ts.map +1 -1
- package/dist/types/callbacks/getQueryData.d.ts +2 -2
- package/dist/types/callbacks/getQueryData.d.ts.map +1 -1
- package/dist/types/callbacks/getQueryKey.d.ts +3 -3
- package/dist/types/callbacks/getQueryKey.d.ts.map +1 -1
- package/dist/types/callbacks/getQueryState.d.ts +2 -2
- package/dist/types/callbacks/getQueryState.d.ts.map +1 -1
- package/dist/types/callbacks/index.d.ts +0 -2
- package/dist/types/callbacks/index.d.ts.map +1 -1
- package/dist/types/callbacks/invalidateQueries.d.ts +3 -3
- package/dist/types/callbacks/invalidateQueries.d.ts.map +1 -1
- package/dist/types/callbacks/isFetching.d.ts +3 -3
- package/dist/types/callbacks/isFetching.d.ts.map +1 -1
- package/dist/types/callbacks/isMutating.d.ts +3 -3
- package/dist/types/callbacks/isMutating.d.ts.map +1 -1
- package/dist/types/callbacks/operationInvokeFn.d.ts +5 -5
- package/dist/types/callbacks/operationInvokeFn.d.ts.map +1 -1
- package/dist/types/callbacks/prefetchInfiniteQuery.d.ts +3 -3
- package/dist/types/callbacks/prefetchInfiniteQuery.d.ts.map +1 -1
- package/dist/types/callbacks/prefetchQuery.d.ts +3 -3
- package/dist/types/callbacks/prefetchQuery.d.ts.map +1 -1
- package/dist/types/callbacks/refetchQueries.d.ts +3 -3
- package/dist/types/callbacks/refetchQueries.d.ts.map +1 -1
- package/dist/types/callbacks/removeQueries.d.ts +3 -3
- package/dist/types/callbacks/removeQueries.d.ts.map +1 -1
- package/dist/types/callbacks/resetQueries.d.ts +3 -3
- package/dist/types/callbacks/resetQueries.d.ts.map +1 -1
- package/dist/types/callbacks/setInfiniteQueryData.d.ts +4 -4
- package/dist/types/callbacks/setInfiniteQueryData.d.ts.map +1 -1
- package/dist/types/callbacks/setQueriesData.d.ts +3 -3
- package/dist/types/callbacks/setQueriesData.d.ts.map +1 -1
- package/dist/types/callbacks/setQueryData.d.ts +3 -3
- package/dist/types/callbacks/setQueryData.d.ts.map +1 -1
- package/dist/types/callbacks/useInfiniteQuery.d.ts +2 -2
- package/dist/types/callbacks/useInfiniteQuery.d.ts.map +1 -1
- package/dist/types/callbacks/useIsFetching.d.ts +2 -2
- package/dist/types/callbacks/useIsFetching.d.ts.map +1 -1
- package/dist/types/callbacks/useIsMutating.d.ts +4 -4
- package/dist/types/callbacks/useIsMutating.d.ts.map +1 -1
- package/dist/types/callbacks/useMutation.d.ts +3 -3
- package/dist/types/callbacks/useMutation.d.ts.map +1 -1
- package/dist/types/callbacks/useMutationState.d.ts +4 -4
- package/dist/types/callbacks/useMutationState.d.ts.map +1 -1
- package/dist/types/callbacks/useQueries.d.ts +4 -4
- package/dist/types/callbacks/useQueries.d.ts.map +1 -1
- package/dist/types/callbacks/useQuery.d.ts +2 -2
- package/dist/types/callbacks/useQuery.d.ts.map +1 -1
- package/dist/types/callbacks/useSuspenseInfiniteQuery.d.ts +2 -2
- package/dist/types/callbacks/useSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/types/callbacks/useSuspenseQueries.d.ts +4 -4
- package/dist/types/callbacks/useSuspenseQueries.d.ts.map +1 -1
- package/dist/types/callbacks/useSuspenseQuery.d.ts +2 -2
- package/dist/types/callbacks/useSuspenseQuery.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/callQueryClientFetchMethod.d.ts +3 -2
- package/dist/types/lib/callQueryClientFetchMethod.d.ts.map +1 -1
- package/dist/types/lib/callQueryClientMethodWithMutationFilters.d.ts +2 -1
- package/dist/types/lib/callQueryClientMethodWithMutationFilters.d.ts.map +1 -1
- package/dist/types/lib/callQueryClientMethodWithQueryFilters.d.ts +2 -1
- package/dist/types/lib/callQueryClientMethodWithQueryFilters.d.ts.map +1 -1
- package/dist/types/lib/callQueryClientMethodWithQueryKey.d.ts +2 -1
- package/dist/types/lib/callQueryClientMethodWithQueryKey.d.ts.map +1 -1
- package/dist/types/lib/requestFn.d.ts +17 -4
- package/dist/types/lib/requestFn.d.ts.map +1 -1
- package/dist/types/lib/requestFnResponseResolver.d.ts +3 -0
- package/dist/types/lib/requestFnResponseResolver.d.ts.map +1 -0
- package/dist/types/lib/useComposeUseQueryOptions.d.ts +2 -2
- package/dist/types/lib/useComposeUseQueryOptions.d.ts.map +1 -1
- package/dist/types/qraftAPIClient.d.ts +40 -9
- package/dist/types/qraftAPIClient.d.ts.map +1 -1
- package/dist/types/qraftPredefinedParametersRequestFn.d.ts +19 -0
- package/dist/types/qraftPredefinedParametersRequestFn.d.ts.map +1 -0
- package/dist/types/service-operation/ServiceOperation.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperation.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationCancelQueries.d.ts +2 -13
- package/dist/types/service-operation/ServiceOperationCancelQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationFetchInfiniteQuery.d.ts +10 -7
- package/dist/types/service-operation/ServiceOperationFetchInfiniteQuery.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationFetchQuery.d.ts +19 -10
- package/dist/types/service-operation/ServiceOperationFetchQuery.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationGetInfiniteQueryData.d.ts +3 -3
- package/dist/types/service-operation/ServiceOperationGetInfiniteQueryData.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationGetQueriesData.d.ts +3 -4
- package/dist/types/service-operation/ServiceOperationGetQueriesData.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationGetQueryData.d.ts +3 -3
- package/dist/types/service-operation/ServiceOperationGetQueryData.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationGetQueryState.d.ts +3 -3
- package/dist/types/service-operation/ServiceOperationGetQueryState.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationInvalidateQueries.d.ts +2 -13
- package/dist/types/service-operation/ServiceOperationInvalidateQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationIsFetchingQueries.d.ts +2 -12
- package/dist/types/service-operation/ServiceOperationIsFetchingQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationIsMutatingQueries.d.ts +2 -12
- package/dist/types/service-operation/ServiceOperationIsMutatingQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationMutationFn.d.ts +16 -33
- package/dist/types/service-operation/ServiceOperationMutationFn.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationQueryFn.d.ts +7 -49
- package/dist/types/service-operation/ServiceOperationQueryFn.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationRefetchQueries.d.ts +2 -23
- package/dist/types/service-operation/ServiceOperationRefetchQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationRemoveQueries.d.ts +2 -12
- package/dist/types/service-operation/ServiceOperationRemoveQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationResetQueries.d.ts +2 -13
- package/dist/types/service-operation/ServiceOperationResetQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationSetInfiniteQueryData.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationSetInfiniteQueryData.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationSetQueriesData.d.ts +3 -14
- package/dist/types/service-operation/ServiceOperationSetQueriesData.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationSetQueryData.d.ts +2 -12
- package/dist/types/service-operation/ServiceOperationSetQueryData.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseInfiniteQuery.d.ts +6 -5
- package/dist/types/service-operation/ServiceOperationUseInfiniteQuery.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseIsFetchingQueries.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationUseIsFetchingQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseIsMutating.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationUseIsMutating.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseMutation.d.ts +4 -4
- package/dist/types/service-operation/ServiceOperationUseMutation.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseMutationState.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationUseMutationState.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseQueries.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationUseQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseQuery.d.ts +5 -5
- package/dist/types/service-operation/ServiceOperationUseQuery.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseSuspenseInfiniteQuery.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationUseSuspenseInfiniteQuery.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseSuspenseQueries.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationUseSuspenseQueries.d.ts.map +1 -1
- package/dist/types/service-operation/ServiceOperationUseSuspenseQuery.d.ts +2 -2
- package/dist/types/service-operation/ServiceOperationUseSuspenseQuery.d.ts.map +1 -1
- package/package.json +10 -5
- package/src/Unstable_QraftSecureRequestFn.ts +3 -2
- package/src/callbacks/cancelQueries.ts +5 -4
- package/src/callbacks/fetchInfiniteQuery.ts +10 -5
- package/src/callbacks/fetchQuery.ts +8 -5
- package/src/callbacks/getInfiniteQueryData.ts +5 -3
- package/src/callbacks/getInfiniteQueryKey.ts +2 -2
- package/src/callbacks/getInfiniteQueryState.ts +5 -3
- package/src/callbacks/getMutationKey.ts +3 -3
- package/src/callbacks/getQueriesData.ts +4 -3
- package/src/callbacks/getQueryData.ts +5 -3
- package/src/callbacks/getQueryKey.ts +3 -3
- package/src/callbacks/getQueryState.ts +5 -3
- package/src/callbacks/index.ts +0 -2
- package/src/callbacks/invalidateQueries.ts +5 -4
- package/src/callbacks/isFetching.ts +5 -4
- package/src/callbacks/isMutating.ts +5 -4
- package/src/callbacks/operationInvokeFn.ts +23 -13
- package/src/callbacks/prefetchInfiniteQuery.ts +10 -5
- package/src/callbacks/prefetchQuery.ts +6 -5
- package/src/callbacks/refetchQueries.ts +5 -4
- package/src/callbacks/removeQueries.ts +5 -4
- package/src/callbacks/resetQueries.ts +5 -4
- package/src/callbacks/setInfiniteQueryData.ts +8 -6
- package/src/callbacks/setQueriesData.ts +5 -4
- package/src/callbacks/setQueryData.ts +7 -5
- package/src/callbacks/useInfiniteQuery.ts +2 -2
- package/src/callbacks/useIsFetching.ts +4 -5
- package/src/callbacks/useIsMutating.ts +7 -10
- package/src/callbacks/useMutation.ts +22 -29
- package/src/callbacks/useMutationState.ts +7 -10
- package/src/callbacks/useQueries.ts +16 -23
- package/src/callbacks/useQuery.ts +2 -2
- package/src/callbacks/useSuspenseInfiniteQuery.ts +2 -2
- package/src/callbacks/useSuspenseQueries.ts +16 -23
- package/src/callbacks/useSuspenseQuery.ts +2 -2
- package/src/index.ts +10 -2
- package/src/lib/callQueryClientFetchMethod.ts +39 -37
- package/src/lib/callQueryClientMethodWithMutationFilters.ts +5 -9
- package/src/lib/callQueryClientMethodWithQueryFilters.ts +5 -9
- package/src/lib/callQueryClientMethodWithQueryKey.ts +10 -10
- package/src/lib/requestFn.ts +104 -50
- package/src/lib/requestFnResponseResolver.ts +8 -0
- package/src/lib/urlSerializer.test.ts +0 -1
- package/src/lib/useComposeUseQueryOptions.ts +16 -24
- package/src/qraftAPIClient.ts +236 -31
- package/src/qraftPredefinedParametersRequestFn.ts +140 -0
- package/src/service-operation/ServiceOperation.ts +2 -2
- package/src/service-operation/ServiceOperationCancelQueries.ts +4 -37
- package/src/service-operation/ServiceOperationFetchInfiniteQuery.ts +12 -11
- package/src/service-operation/ServiceOperationFetchQuery.ts +40 -23
- package/src/service-operation/ServiceOperationGetInfiniteQueryData.ts +5 -4
- package/src/service-operation/ServiceOperationGetQueriesData.ts +5 -6
- package/src/service-operation/ServiceOperationGetQueryData.ts +5 -4
- package/src/service-operation/ServiceOperationGetQueryState.ts +3 -9
- package/src/service-operation/ServiceOperationInvalidateQueries.ts +10 -34
- package/src/service-operation/ServiceOperationIsFetchingQueries.ts +3 -24
- package/src/service-operation/ServiceOperationIsMutatingQueries.ts +2 -37
- package/src/service-operation/ServiceOperationMutationFn.ts +32 -75
- package/src/service-operation/ServiceOperationQueryFn.ts +15 -121
- package/src/service-operation/ServiceOperationRefetchQueries.ts +4 -58
- package/src/service-operation/ServiceOperationRemoveQueries.ts +3 -24
- package/src/service-operation/ServiceOperationResetQueries.ts +4 -37
- package/src/service-operation/ServiceOperationSetInfiniteQueryData.ts +1 -7
- package/src/service-operation/ServiceOperationSetQueriesData.ts +3 -32
- package/src/service-operation/ServiceOperationSetQueryData.ts +3 -31
- package/src/service-operation/ServiceOperationUseInfiniteQuery.ts +13 -11
- package/src/service-operation/ServiceOperationUseIsFetchingQueries.ts +3 -4
- package/src/service-operation/ServiceOperationUseIsMutating.ts +2 -3
- package/src/service-operation/ServiceOperationUseMutation.ts +6 -8
- package/src/service-operation/ServiceOperationUseMutationState.ts +17 -21
- package/src/service-operation/ServiceOperationUseQueries.ts +6 -10
- package/src/service-operation/ServiceOperationUseQuery.ts +7 -9
- package/src/service-operation/ServiceOperationUseSuspenseInfiniteQuery.ts +1 -3
- package/src/service-operation/ServiceOperationUseSuspenseQueries.ts +9 -12
- package/src/service-operation/ServiceOperationUseSuspenseQuery.ts +2 -3
- package/dist/cjs/QraftContext.cjs +0 -9
- package/dist/cjs/QraftContext.cjs.map +0 -1
- package/dist/cjs/callbacks/mutationFn.cjs +0 -12
- package/dist/cjs/callbacks/mutationFn.cjs.map +0 -1
- package/dist/cjs/callbacks/queryFn.cjs +0 -13
- package/dist/cjs/callbacks/queryFn.cjs.map +0 -1
- package/dist/cjs/lib/useQueryClient.cjs +0 -18
- package/dist/cjs/lib/useQueryClient.cjs.map +0 -1
- package/dist/esm/QraftContext.js +0 -7
- package/dist/esm/QraftContext.js.map +0 -1
- package/dist/esm/callbacks/mutationFn.js +0 -10
- package/dist/esm/callbacks/mutationFn.js.map +0 -1
- package/dist/esm/callbacks/queryFn.js +0 -11
- package/dist/esm/callbacks/queryFn.js.map +0 -1
- package/dist/esm/lib/useQueryClient.js +0 -16
- package/dist/esm/lib/useQueryClient.js.map +0 -1
- package/dist/types/QraftContext.d.ts +0 -20
- package/dist/types/QraftContext.d.ts.map +0 -1
- package/dist/types/ServiceOperation.d.ts +0 -44
- package/dist/types/ServiceOperation.d.ts.map +0 -1
- package/dist/types/callbacks/mutationFn.d.ts +0 -4
- package/dist/types/callbacks/mutationFn.d.ts.map +0 -1
- package/dist/types/callbacks/queryFn.d.ts +0 -7
- package/dist/types/callbacks/queryFn.d.ts.map +0 -1
- package/dist/types/lib/useQueryClient.d.ts +0 -9
- package/dist/types/lib/useQueryClient.d.ts.map +0 -1
- package/src/QraftContext.ts +0 -28
- package/src/ServiceOperation.ts +0 -66
- package/src/callbacks/mutationFn.ts +0 -22
- package/src/callbacks/queryFn.ts +0 -26
- package/src/lib/useQueryClient.ts +0 -25
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { QueryClient } from '@tanstack/query-core';
|
|
2
|
+
import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
|
|
2
3
|
import type { OperationSchema } from './requestFn.js';
|
|
3
4
|
import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
|
|
4
5
|
import { composeQueryKey } from './composeQueryKey.js';
|
|
@@ -10,19 +11,13 @@ import { composeQueryKey } from './composeQueryKey.js';
|
|
|
10
11
|
export function callQueryClientMethodWithQueryKey<
|
|
11
12
|
QFMethod extends QueryKeyMethods,
|
|
12
13
|
>(
|
|
13
|
-
|
|
14
|
+
qraftOptions: CreateAPIQueryClientOptions,
|
|
15
|
+
queryClientMethod: QFMethod,
|
|
14
16
|
schema: OperationSchema,
|
|
15
17
|
infinite: boolean,
|
|
16
18
|
args: [...Parameters<(typeof QueryClient.prototype)[QFMethod]>, QueryClient]
|
|
17
19
|
): ReturnType<(typeof QueryClient.prototype)[QFMethod]> {
|
|
18
|
-
const parameters = args
|
|
19
|
-
const queryClient = args[args.length - 1] as QueryClient | undefined;
|
|
20
|
-
|
|
21
|
-
if (!queryClient) throw new Error('queryClient is required');
|
|
22
|
-
if (!queryClient[queryFilterMethod])
|
|
23
|
-
throw new Error(
|
|
24
|
-
`queryClient is invalid, ${queryFilterMethod} method does not exist`
|
|
25
|
-
);
|
|
20
|
+
const parameters = args[0];
|
|
26
21
|
|
|
27
22
|
const queryKey = Array.isArray(parameters)
|
|
28
23
|
? parameters
|
|
@@ -30,8 +25,13 @@ export function callQueryClientMethodWithQueryKey<
|
|
|
30
25
|
? composeInfiniteQueryKey(schema, parameters)
|
|
31
26
|
: composeQueryKey(schema, parameters);
|
|
32
27
|
|
|
28
|
+
const queryClient = qraftOptions.queryClient;
|
|
29
|
+
|
|
33
30
|
// @ts-expect-error - Too complex to type
|
|
34
|
-
return queryClient[
|
|
31
|
+
return queryClient[queryClientMethod](
|
|
32
|
+
queryKey,
|
|
33
|
+
...args.slice(1, args.length)
|
|
34
|
+
);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
type QueryKeyMethod<QFMethod extends keyof typeof QueryClient.prototype> =
|
package/src/lib/requestFn.ts
CHANGED
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.
|
|
13
13
|
*/
|
|
14
|
-
export async function requestFn<
|
|
14
|
+
export async function requestFn<TData, TError>(
|
|
15
15
|
schema: OperationSchema,
|
|
16
16
|
requestInfo: RequestFnInfo,
|
|
17
17
|
options?: RequestFnOptions
|
|
18
|
-
): Promise<
|
|
19
|
-
return baseRequestFn(schema, requestInfo, {
|
|
18
|
+
): Promise<RequestFnResponse<TData, TError>> {
|
|
19
|
+
return baseRequestFn<TData, TError>(schema, requestInfo, {
|
|
20
20
|
urlSerializer,
|
|
21
21
|
bodySerializer,
|
|
22
22
|
...options,
|
|
@@ -39,46 +39,36 @@ export async function requestFn<T>(
|
|
|
39
39
|
*
|
|
40
40
|
* @throws {error: object|string, response: Response} Throws an error if the request fails. The error includes the error message and the response from the server.
|
|
41
41
|
*/
|
|
42
|
-
export async function baseRequestFn<
|
|
42
|
+
export async function baseRequestFn<TData, TError>(
|
|
43
43
|
requestSchema: OperationSchema,
|
|
44
44
|
requestInfo: RequestFnInfo,
|
|
45
45
|
options: WithRequired<RequestFnOptions, 'urlSerializer' | 'bodySerializer'>
|
|
46
|
-
): Promise<
|
|
46
|
+
): Promise<RequestFnResponse<TData, TError>> {
|
|
47
47
|
const { parameters, headers, body, ...requestInfoRest } = requestInfo;
|
|
48
48
|
|
|
49
49
|
const requestBody = options.bodySerializer(requestSchema, requestInfo);
|
|
50
50
|
|
|
51
51
|
const baseFetch = options.fetch ?? fetch;
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
// clone response to allow multiple reads
|
|
75
|
-
const clonedResponse = response.clone();
|
|
76
|
-
|
|
77
|
-
if (!response.ok) {
|
|
78
|
-
throw await getResponseBody(clonedResponse);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return (await getResponseBody(clonedResponse)) as T;
|
|
53
|
+
return baseFetch(options.urlSerializer(requestSchema, requestInfo), {
|
|
54
|
+
method: requestSchema.method.toUpperCase(),
|
|
55
|
+
body: requestBody,
|
|
56
|
+
headers: mergeHeaders(
|
|
57
|
+
{
|
|
58
|
+
Accept: 'application/json',
|
|
59
|
+
'Content-Type': requestSchema.mediaType ?? getBodyContentType(body),
|
|
60
|
+
},
|
|
61
|
+
headers,
|
|
62
|
+
parameters?.header,
|
|
63
|
+
requestBody instanceof FormData
|
|
64
|
+
? // remove `Content-Type` if the serialized body is FormData; the browser will correctly set Content-Type & boundary expression
|
|
65
|
+
{ 'Content-Type': null }
|
|
66
|
+
: undefined
|
|
67
|
+
),
|
|
68
|
+
...requestInfoRest,
|
|
69
|
+
})
|
|
70
|
+
.then(processResponse as typeof processResponse<TData, TError>)
|
|
71
|
+
.catch(resolveResponse as typeof resolveResponse<TData, TError>);
|
|
82
72
|
}
|
|
83
73
|
|
|
84
74
|
/**
|
|
@@ -257,27 +247,72 @@ function getBodyContentType(body: RequestFnPayload['body']) {
|
|
|
257
247
|
if (!(body instanceof FormData)) return 'application/json';
|
|
258
248
|
}
|
|
259
249
|
|
|
260
|
-
async function
|
|
250
|
+
async function processResponse<TData, TError>(
|
|
251
|
+
response: Response
|
|
252
|
+
): Promise<RequestFnResponse<TData, TError>> {
|
|
261
253
|
if (response.status === 204 || response.headers.get('Content-Length') === '0')
|
|
262
|
-
return
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
254
|
+
return (
|
|
255
|
+
response.ok ? { data: {}, response } : { error: {}, response }
|
|
256
|
+
) as RequestFnResponse<TData, TError>;
|
|
257
|
+
|
|
258
|
+
if (isJsonResponse(response)) {
|
|
259
|
+
// clone response before parsing every time to allow multiple reads
|
|
260
|
+
const jsonResponse = response.clone().json();
|
|
261
|
+
return resolveResponse(
|
|
262
|
+
response,
|
|
263
|
+
response.ok ? jsonResponse : Promise.reject(await jsonResponse)
|
|
264
|
+
);
|
|
265
|
+
}
|
|
267
266
|
|
|
268
|
-
|
|
267
|
+
const jsonResponse = new Promise<TData>((resolve, reject) =>
|
|
269
268
|
// attempt to parse JSON for successful responses, otherwise fail
|
|
270
|
-
|
|
269
|
+
response.clone().text().then(JSON.parse).then(resolve, reject)
|
|
270
|
+
);
|
|
271
271
|
|
|
272
|
-
|
|
272
|
+
return resolveResponse(
|
|
273
|
+
response,
|
|
274
|
+
response.ok ? jsonResponse : Promise.reject(await jsonResponse)
|
|
275
|
+
);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function isJsonResponse(response: Response) {
|
|
279
|
+
const contentType = response.headers.get('Content-Type')?.toLowerCase();
|
|
280
|
+
return contentType?.includes('/json') || contentType?.includes('+json');
|
|
281
|
+
}
|
|
273
282
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
283
|
+
function resolveResponse<TData, TError>(
|
|
284
|
+
error: Error
|
|
285
|
+
): Promise<RequestFnResponse<TData, TError>>;
|
|
286
|
+
function resolveResponse<TData, TError>(
|
|
287
|
+
responseToReturn: Response,
|
|
288
|
+
responsePromise: Promise<TData>
|
|
289
|
+
): Promise<RequestFnResponse<TData, TError>>;
|
|
290
|
+
function resolveResponse<TData, TError>(
|
|
291
|
+
responseToReturn: Response | Error,
|
|
292
|
+
responsePromise?: Promise<TData>
|
|
293
|
+
): Promise<RequestFnResponse<TData, TError>> {
|
|
294
|
+
if (!responsePromise)
|
|
295
|
+
return Promise.reject({
|
|
296
|
+
error: responseToReturn,
|
|
297
|
+
response: undefined,
|
|
298
|
+
data: undefined,
|
|
277
299
|
});
|
|
278
|
-
}
|
|
279
300
|
|
|
280
|
-
return
|
|
301
|
+
return responsePromise
|
|
302
|
+
.then(
|
|
303
|
+
(data) =>
|
|
304
|
+
({ data, response: responseToReturn }) as RequestFnResponse<
|
|
305
|
+
TData,
|
|
306
|
+
TError
|
|
307
|
+
>
|
|
308
|
+
)
|
|
309
|
+
.catch(
|
|
310
|
+
(error) =>
|
|
311
|
+
({ error, response: responseToReturn }) as RequestFnResponse<
|
|
312
|
+
TData,
|
|
313
|
+
TError
|
|
314
|
+
>
|
|
315
|
+
);
|
|
281
316
|
}
|
|
282
317
|
|
|
283
318
|
// To have definitely typed headers without a conversion to stings
|
|
@@ -319,7 +354,7 @@ export interface RequestFnPayload {
|
|
|
319
354
|
* Base URL to use for the request
|
|
320
355
|
* @example 'https://api.example.com'
|
|
321
356
|
*/
|
|
322
|
-
baseUrl
|
|
357
|
+
baseUrl?: string;
|
|
323
358
|
|
|
324
359
|
/**
|
|
325
360
|
* OpenAPI parameters
|
|
@@ -365,7 +400,26 @@ export interface RequestFnOptions {
|
|
|
365
400
|
fetch?: typeof fetch;
|
|
366
401
|
}
|
|
367
402
|
|
|
368
|
-
export type RequestFn<
|
|
403
|
+
export type RequestFn<TData, TError> = typeof requestFn<TData, TError>;
|
|
404
|
+
|
|
405
|
+
export type RequestFnResponse<TData, TError> =
|
|
406
|
+
| {
|
|
407
|
+
data?: TData;
|
|
408
|
+
response: Response;
|
|
409
|
+
error?: never;
|
|
410
|
+
}
|
|
411
|
+
| {
|
|
412
|
+
// server error
|
|
413
|
+
error?: TError | Error;
|
|
414
|
+
response: Response;
|
|
415
|
+
data?: never;
|
|
416
|
+
}
|
|
417
|
+
| {
|
|
418
|
+
// network error
|
|
419
|
+
error?: Error;
|
|
420
|
+
data?: never;
|
|
421
|
+
response?: never;
|
|
422
|
+
};
|
|
369
423
|
|
|
370
424
|
type WithRequired<T, K extends keyof T> = T & {
|
|
371
425
|
[_ in K]: {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RequestFnResponse } from './requestFn.js';
|
|
2
|
+
|
|
3
|
+
export function requestFnResponseResolver<TData, TError>(
|
|
4
|
+
requestFnResponse: RequestFnResponse<TData, TError>
|
|
5
|
+
): TData | undefined {
|
|
6
|
+
if ('error' in requestFnResponse) throw requestFnResponse.error;
|
|
7
|
+
return requestFnResponse.data;
|
|
8
|
+
}
|
|
@@ -2,46 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
import type { QueryClient } from '@tanstack/query-core';
|
|
4
4
|
import type { UseQueryOptions } from '@tanstack/react-query';
|
|
5
|
-
import type {
|
|
5
|
+
import type { CreateAPIQueryClientOptions } from '../qraftAPIClient.js';
|
|
6
6
|
import type { ServiceOperationQueryKey } from '../service-operation/ServiceOperationKey.js';
|
|
7
7
|
import type { OperationSchema } from './requestFn.js';
|
|
8
|
-
import { useContext } from 'react';
|
|
9
|
-
import { QraftContext } from '../QraftContext.js';
|
|
10
8
|
import { composeInfiniteQueryKey } from './composeInfiniteQueryKey.js';
|
|
11
9
|
import { composeQueryKey } from './composeQueryKey.js';
|
|
10
|
+
import { requestFnResponseResolver } from './requestFnResponseResolver.js';
|
|
12
11
|
import { shelfMerge } from './shelfMerge.js';
|
|
13
|
-
import { useQueryClient } from './useQueryClient.js';
|
|
14
12
|
|
|
15
13
|
/**
|
|
16
14
|
* Composes the options for useQuery, useInfiniteQuery, useSuspenseQuery, and useSuspenseQueries.
|
|
17
15
|
* @internal
|
|
18
16
|
*/
|
|
19
17
|
export function useComposeUseQueryOptions(
|
|
20
|
-
qraftOptions:
|
|
18
|
+
qraftOptions: CreateAPIQueryClientOptions,
|
|
21
19
|
schema: OperationSchema,
|
|
22
20
|
args: UseQueryOptionsArgs,
|
|
23
21
|
infinite: boolean
|
|
24
22
|
): never {
|
|
25
|
-
const [parameters, options
|
|
26
|
-
|
|
27
|
-
const contextValue = useContext(qraftOptions?.context ?? QraftContext);
|
|
23
|
+
const [parameters, options] = args;
|
|
28
24
|
|
|
29
25
|
const queryFn =
|
|
30
26
|
options?.queryFn ??
|
|
31
27
|
// @ts-expect-error - Too complex to type
|
|
32
28
|
function ({ queryKey: [, queryParams], signal, meta, pageParam }) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
});
|
|
29
|
+
return qraftOptions
|
|
30
|
+
.requestFn(schema, {
|
|
31
|
+
// @ts-expect-error - Too complex to type
|
|
32
|
+
parameters: infinite
|
|
33
|
+
? (shelfMerge(2, queryParams, pageParam) as never)
|
|
34
|
+
: queryParams,
|
|
35
|
+
baseUrl: qraftOptions.baseUrl,
|
|
36
|
+
signal,
|
|
37
|
+
meta,
|
|
38
|
+
})
|
|
39
|
+
.then(requestFnResponseResolver, requestFnResponseResolver);
|
|
45
40
|
};
|
|
46
41
|
|
|
47
42
|
const queryKey = Array.isArray(parameters)
|
|
@@ -50,10 +45,7 @@ export function useComposeUseQueryOptions(
|
|
|
50
45
|
? composeInfiniteQueryKey(schema, parameters)
|
|
51
46
|
: composeQueryKey(schema, parameters);
|
|
52
47
|
|
|
53
|
-
return [
|
|
54
|
-
{ ...options, queryFn, queryKey },
|
|
55
|
-
useQueryClient(qraftOptions, queryClient),
|
|
56
|
-
] as never;
|
|
48
|
+
return [{ ...options, queryFn, queryKey }, qraftOptions.queryClient] as never;
|
|
57
49
|
}
|
|
58
50
|
|
|
59
51
|
type UseQueryOptionsArgs = [
|
package/src/qraftAPIClient.ts
CHANGED
|
@@ -1,21 +1,78 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { QueryClient } from '@tanstack/query-core';
|
|
2
|
+
import type * as callbacks from './callbacks/index.js';
|
|
2
3
|
import type * as operationInvokeModule from './callbacks/operationInvokeFn.js';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
4
|
+
import type {
|
|
5
|
+
OperationSchema,
|
|
6
|
+
RequestFnInfo,
|
|
7
|
+
RequestFnResponse,
|
|
8
|
+
} from './lib/requestFn.js';
|
|
9
|
+
import type {
|
|
10
|
+
ServiceOperationMutation,
|
|
11
|
+
ServiceOperationQuery,
|
|
12
|
+
} from './service-operation/index.js';
|
|
13
|
+
import type { ServiceOperationMutationFn } from './service-operation/ServiceOperationMutationFn.js';
|
|
14
|
+
import type { ServiceOperationQueryFn } from './service-operation/ServiceOperationQueryFn.js';
|
|
5
15
|
import { createRecursiveProxy } from './lib/createRecursiveProxy.js';
|
|
6
16
|
|
|
7
|
-
export interface
|
|
8
|
-
|
|
17
|
+
export interface CreateAPIBasicClientOptions {
|
|
18
|
+
requestFn<TData, TError>(
|
|
19
|
+
schema: OperationSchema,
|
|
20
|
+
requestInfo: RequestFnInfo
|
|
21
|
+
): Promise<RequestFnResponse<TData, TError>>;
|
|
22
|
+
baseUrl: string;
|
|
9
23
|
}
|
|
10
24
|
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
25
|
+
export interface CreateAPIQueryClientOptions
|
|
26
|
+
extends CreateAPIBasicClientOptions {
|
|
27
|
+
queryClient: QueryClient;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated use `CreateAPIClientOptions` instead
|
|
32
|
+
*/
|
|
33
|
+
export type QraftClientOptions =
|
|
34
|
+
| CreateAPIBasicClientOptions
|
|
35
|
+
| CreateAPIQueryClientOptions;
|
|
36
|
+
|
|
37
|
+
export type CreateAPIClientOptions =
|
|
38
|
+
| CreateAPIBasicClientOptions
|
|
39
|
+
| CreateAPIQueryClientOptions;
|
|
40
|
+
|
|
41
|
+
export function qraftAPIClient<
|
|
42
|
+
Services extends ServicesDeclaration<Services>,
|
|
43
|
+
TCallbacks extends Callbacks,
|
|
44
|
+
>(
|
|
45
|
+
services: ServiceSchemasDeclaration<Services>,
|
|
46
|
+
callbacks: TCallbacks,
|
|
47
|
+
options: CreateAPIBasicClientOptions
|
|
48
|
+
): APIBasicClientServices<Services, TCallbacks>;
|
|
49
|
+
|
|
50
|
+
export function qraftAPIClient<
|
|
51
|
+
Services extends ServicesDeclaration<Services>,
|
|
52
|
+
TCallbacks extends Required<Callbacks>,
|
|
14
53
|
>(
|
|
15
|
-
services:
|
|
16
|
-
callbacks:
|
|
17
|
-
options
|
|
18
|
-
): Services
|
|
54
|
+
services: ServiceSchemasDeclaration<Services>,
|
|
55
|
+
callbacks: TCallbacks,
|
|
56
|
+
options: CreateAPIQueryClientOptions
|
|
57
|
+
): Services;
|
|
58
|
+
|
|
59
|
+
export function qraftAPIClient<
|
|
60
|
+
Services extends ServicesDeclaration<Services>,
|
|
61
|
+
TCallbacks extends Callbacks,
|
|
62
|
+
>(
|
|
63
|
+
services: ServiceSchemasDeclaration<Services>,
|
|
64
|
+
callbacks: TCallbacks,
|
|
65
|
+
options: CreateAPIQueryClientOptions
|
|
66
|
+
): APIQueryClientServices<Services, TCallbacks>;
|
|
67
|
+
|
|
68
|
+
export function qraftAPIClient<
|
|
69
|
+
Services extends ServicesDeclaration<Services>,
|
|
70
|
+
TCallbacks extends Callbacks,
|
|
71
|
+
>(
|
|
72
|
+
services: ServiceSchemasDeclaration<Services>,
|
|
73
|
+
callbacks: TCallbacks,
|
|
74
|
+
options: CreateAPIClientOptions
|
|
75
|
+
): APIQueryClientServices<Services, TCallbacks> | Services {
|
|
19
76
|
return createRecursiveProxy(
|
|
20
77
|
function getCallback(getPath, key) {
|
|
21
78
|
if (getPath.length !== 2 || key !== 'schema') return; // todo::maybe return callback?
|
|
@@ -28,23 +85,46 @@ export const qraftAPIClient = <
|
|
|
28
85
|
function applyCallback(applyPath, args) {
|
|
29
86
|
const { path, callbackName } = extractCallbackDetails(applyPath);
|
|
30
87
|
|
|
31
|
-
|
|
32
|
-
throw new Error(`Function ${callbackName} is not supported`);
|
|
88
|
+
assertValidCallbackName(callbackName, callbacks);
|
|
33
89
|
|
|
34
90
|
const serviceOperation = getByPath(services, path);
|
|
35
91
|
|
|
36
92
|
if (!isServiceOperation(serviceOperation))
|
|
37
93
|
throw new Error(`Service operation not found: ${path.join('.')}`);
|
|
38
94
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
)
|
|
95
|
+
if (
|
|
96
|
+
callbackName !== 'operationInvokeFn' &&
|
|
97
|
+
callbackName !== 'getQueryKey' &&
|
|
98
|
+
callbackName !== 'getMutationKey'
|
|
99
|
+
)
|
|
100
|
+
if (!('queryClient' in options && options.queryClient))
|
|
101
|
+
throw new Error(
|
|
102
|
+
`'qraft.<service>.<operation>.${String(callbackName)}()' requires 'queryClient' in options.`
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
// @ts-expect-error - Too complex union type
|
|
106
|
+
return callbacks[callbackName](options, serviceOperation.schema, args);
|
|
44
107
|
},
|
|
45
108
|
[]
|
|
46
109
|
) as never;
|
|
47
|
-
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function assertValidCallbackName<
|
|
113
|
+
TCallbacks extends Record<string, (...rest: any[]) => unknown>,
|
|
114
|
+
>(
|
|
115
|
+
callbackName: string | number | symbol,
|
|
116
|
+
callbacks: TCallbacks
|
|
117
|
+
): asserts callbackName is keyof TCallbacks {
|
|
118
|
+
if (!(callbackName in callbacks)) {
|
|
119
|
+
if ((callbackName as OperationInvokeFnName) === 'operationInvokeFn')
|
|
120
|
+
throw new Error(
|
|
121
|
+
`Callback 'operationInvokeFn' is required for executing 'qraft.<service>.<operation>()', but it is not provided in the 'callbacks' object.`
|
|
122
|
+
);
|
|
123
|
+
throw new Error(
|
|
124
|
+
`Callback for 'qraft.<service>.<operation>.${String(callbackName)}()' is not provided in the 'callbacks' object.`
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
48
128
|
|
|
49
129
|
/**
|
|
50
130
|
* Extracts Callback details from the applyPath
|
|
@@ -55,10 +135,7 @@ function extractCallbackDetails(applyPath: string[]) {
|
|
|
55
135
|
if (applyPath.length === 2) {
|
|
56
136
|
return {
|
|
57
137
|
path: applyPath,
|
|
58
|
-
callbackName: 'operationInvokeFn' satisfies
|
|
59
|
-
keyof typeof operationInvokeModule,
|
|
60
|
-
'operationInvokeFn'
|
|
61
|
-
>,
|
|
138
|
+
callbackName: 'operationInvokeFn' satisfies OperationInvokeFnName,
|
|
62
139
|
};
|
|
63
140
|
} else {
|
|
64
141
|
// <service>.<operation>.<method>()
|
|
@@ -83,18 +160,146 @@ function getByPath(obj: Record<string, unknown>, path: string[]) {
|
|
|
83
160
|
}, obj);
|
|
84
161
|
}
|
|
85
162
|
|
|
86
|
-
type
|
|
163
|
+
type Callbacks = Partial<typeof callbacks>;
|
|
164
|
+
|
|
165
|
+
type ServicesDeclaration<Services> = {
|
|
87
166
|
[service in keyof Services]: {
|
|
88
|
-
[method in keyof Services[service]]: {
|
|
167
|
+
[method in keyof Services[service]]: {
|
|
168
|
+
schema: OperationSchema;
|
|
169
|
+
types: {
|
|
170
|
+
parameters?: any;
|
|
171
|
+
data?: any;
|
|
172
|
+
error?: any;
|
|
173
|
+
body?: any;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
89
176
|
};
|
|
90
177
|
};
|
|
91
178
|
|
|
92
|
-
type
|
|
93
|
-
|
|
94
|
-
[
|
|
95
|
-
|
|
179
|
+
type ServiceSchemasDeclaration<Services extends ServicesDeclaration<Services>> =
|
|
180
|
+
{
|
|
181
|
+
[service in keyof Services]: {
|
|
182
|
+
[method in keyof Services[service]]: {
|
|
183
|
+
schema: Services[service][method]['schema'];
|
|
184
|
+
};
|
|
96
185
|
};
|
|
97
186
|
};
|
|
187
|
+
|
|
188
|
+
type QueryOperationCallbacks = Extract<
|
|
189
|
+
keyof Callbacks,
|
|
190
|
+
| 'cancelQueries'
|
|
191
|
+
| 'fetchInfiniteQuery'
|
|
192
|
+
| 'fetchQuery'
|
|
193
|
+
| 'getInfiniteQueryData'
|
|
194
|
+
| 'getInfiniteQueryKey'
|
|
195
|
+
| 'getInfiniteQueryState'
|
|
196
|
+
| 'getQueriesData'
|
|
197
|
+
| 'getQueryData'
|
|
198
|
+
| 'getQueryKey'
|
|
199
|
+
| 'getQueryState'
|
|
200
|
+
| 'invalidateQueries'
|
|
201
|
+
| 'isFetching'
|
|
202
|
+
| 'prefetchInfiniteQuery'
|
|
203
|
+
| 'prefetchQuery'
|
|
204
|
+
| 'refetchQueries'
|
|
205
|
+
| 'removeQueries'
|
|
206
|
+
| 'resetQueries'
|
|
207
|
+
| 'setInfiniteQueryData'
|
|
208
|
+
| 'setQueriesData'
|
|
209
|
+
| 'setQueryData'
|
|
210
|
+
| 'useInfiniteQuery'
|
|
211
|
+
| 'useIsFetching'
|
|
212
|
+
| 'useQueries'
|
|
213
|
+
| 'useQuery'
|
|
214
|
+
| 'useSuspenseInfiniteQuery'
|
|
215
|
+
| 'useSuspenseQueries'
|
|
216
|
+
| 'useSuspenseQuery'
|
|
217
|
+
>;
|
|
218
|
+
|
|
219
|
+
type MutationOperationCallbacks = Extract<
|
|
220
|
+
keyof Callbacks,
|
|
221
|
+
| 'getMutationKey'
|
|
222
|
+
| 'isMutating'
|
|
223
|
+
| 'useIsMutating'
|
|
224
|
+
| 'useMutation'
|
|
225
|
+
| 'useMutationState'
|
|
226
|
+
>;
|
|
227
|
+
|
|
228
|
+
export type APIQueryClientServices<
|
|
229
|
+
TServices extends ServicesDeclaration<TServices>,
|
|
230
|
+
TCallbacks extends Callbacks,
|
|
231
|
+
> = ServicesFilteredByCallbacks<
|
|
232
|
+
TServices,
|
|
233
|
+
TCallbacks,
|
|
234
|
+
QueryOperationCallbacks,
|
|
235
|
+
MutationOperationCallbacks
|
|
236
|
+
>;
|
|
237
|
+
|
|
238
|
+
export type APIBasicClientServices<
|
|
239
|
+
TServices extends ServicesDeclaration<TServices>,
|
|
240
|
+
TCallbacks extends Callbacks,
|
|
241
|
+
> = ServicesFilteredByCallbacks<
|
|
242
|
+
TServices,
|
|
243
|
+
TCallbacks,
|
|
244
|
+
Extract<QueryOperationCallbacks, 'getQueryKey'>,
|
|
245
|
+
Extract<MutationOperationCallbacks, 'getMutationKey'>
|
|
246
|
+
>;
|
|
247
|
+
|
|
248
|
+
type ServicesFilteredByCallbacks<
|
|
249
|
+
TServices extends ServicesDeclaration<TServices>,
|
|
250
|
+
TCallbacks extends Callbacks,
|
|
251
|
+
TQueryOperationCallbacks extends QueryOperationCallbacks,
|
|
252
|
+
TMutationOperationCallbacks extends MutationOperationCallbacks,
|
|
253
|
+
> = {
|
|
254
|
+
[serviceName in keyof TServices]: {
|
|
255
|
+
[method in keyof TServices[serviceName]]: TServices[serviceName][method]['schema']['method'] extends
|
|
256
|
+
| 'get'
|
|
257
|
+
| 'head'
|
|
258
|
+
| 'options'
|
|
259
|
+
? Pick<
|
|
260
|
+
ServiceOperationQuery<
|
|
261
|
+
TServices[serviceName][method]['schema'],
|
|
262
|
+
TServices[serviceName][method]['types']['data'],
|
|
263
|
+
TServices[serviceName][method]['types']['parameters'],
|
|
264
|
+
TServices[serviceName][method]['types']['error']
|
|
265
|
+
>,
|
|
266
|
+
| Extract<keyof TCallbacks, TQueryOperationCallbacks>
|
|
267
|
+
| 'types'
|
|
268
|
+
| 'schema'
|
|
269
|
+
> &
|
|
270
|
+
(OperationInvokeFnName extends keyof TCallbacks
|
|
271
|
+
? ServiceOperationQueryFn<
|
|
272
|
+
TServices[serviceName][method]['schema'],
|
|
273
|
+
TServices[serviceName][method]['types']['data'],
|
|
274
|
+
TServices[serviceName][method]['types']['parameters'],
|
|
275
|
+
TServices[serviceName][method]['types']['error']
|
|
276
|
+
>
|
|
277
|
+
: {})
|
|
278
|
+
: Pick<
|
|
279
|
+
ServiceOperationMutation<
|
|
280
|
+
TServices[serviceName][method]['schema'],
|
|
281
|
+
TServices[serviceName][method]['types']['body'],
|
|
282
|
+
TServices[serviceName][method]['types']['data'],
|
|
283
|
+
TServices[serviceName][method]['types']['parameters'],
|
|
284
|
+
TServices[serviceName][method]['types']['error']
|
|
285
|
+
>,
|
|
286
|
+
| Extract<keyof TCallbacks, TMutationOperationCallbacks>
|
|
287
|
+
| 'types'
|
|
288
|
+
| 'schema'
|
|
289
|
+
> &
|
|
290
|
+
(OperationInvokeFnName extends keyof TCallbacks
|
|
291
|
+
? ServiceOperationMutationFn<
|
|
292
|
+
TServices[serviceName][method]['schema'],
|
|
293
|
+
TServices[serviceName][method]['types']['body'],
|
|
294
|
+
TServices[serviceName][method]['types']['data'],
|
|
295
|
+
TServices[serviceName][method]['types']['parameters'],
|
|
296
|
+
TServices[serviceName][method]['types']['error']
|
|
297
|
+
>
|
|
298
|
+
: {});
|
|
299
|
+
};
|
|
98
300
|
};
|
|
99
301
|
|
|
100
|
-
type
|
|
302
|
+
type OperationInvokeFnName = Extract<
|
|
303
|
+
keyof typeof operationInvokeModule,
|
|
304
|
+
'operationInvokeFn'
|
|
305
|
+
>;
|