Skip to content

Commit

Permalink
feat(client): add vue-query
Browse files Browse the repository at this point in the history
  • Loading branch information
anymaniax committed Jul 16, 2021
1 parent cd76cdd commit 5c22c25
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 3 deletions.
8 changes: 8 additions & 0 deletions src/core/generators/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import {
generateQueryTitle,
getReactQueryDependencies,
getSvelteQueryDependencies,
getVueQueryDependencies,
} from './query';

const DEFAULT_CLIENT = OutputClient.AXIOS;
Expand Down Expand Up @@ -85,6 +86,13 @@ export const GENERATOR_CLIENT: GeneratorClients = {
footer: generateQueryFooter,
title: generateQueryTitle,
},
'vue-query': {
client: generateQuery,
header: generateQueryHeader,
dependencies: getVueQueryDependencies,
footer: generateQueryFooter,
title: generateQueryTitle,
},
};

const getGeneratorClient = (outputClient: OutputClient | OutputClientFunc) => {
Expand Down
25 changes: 23 additions & 2 deletions src/core/generators/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,27 @@ const REACT_QUERY_DEPENDENCIES: GeneratorDependency[] = [
];

export const getReactQueryDependencies = () => REACT_QUERY_DEPENDENCIES;
const VUE_QUERY_DEPENDENCIES: GeneratorDependency[] = [
...AXIOS_DEPENDENCIES,
{
exports: [
{ name: 'useQuery', values: true },
{ name: 'useInfiniteQuery', values: true },
{ name: 'useMutation', values: true },
],
dependency: 'vue-query',
},
{
exports: [
{ name: 'UseQueryOptions' },
{ name: 'UseInfiniteQueryOptions' },
{ name: 'UseMutationOptions' },
],
dependency: 'vue-query/types',
},
];

export const getVueQueryDependencies = () => VUE_QUERY_DEPENDENCIES;

const generateQueryRequestFunction = (
{
Expand All @@ -80,7 +101,7 @@ const generateQueryRequestFunction = (
) => {
const isRequestOptions = override?.requestOptions !== false;
const isFormData = override?.formData !== false;

if (mutator) {
const mutatorConfig = generateMutatorConfig({
route,
Expand Down Expand Up @@ -120,7 +141,7 @@ const generateQueryRequestFunction = (
response,
verb,
requestOptions: override?.requestOptions,
isFormData
isFormData,
});

return `export const ${operationName} = <TData = AxiosResponse<${
Expand Down
3 changes: 2 additions & 1 deletion src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ export type OutputClient =
| 'axios-functions'
| 'angular'
| 'react-query'
| 'svelte-query';
| 'svelte-query'
| 'vue-query';

export const OutputClient = {
ANGULAR: 'angular' as OutputClient,
Expand Down

0 comments on commit 5c22c25

Please sign in to comment.