Skip to content

Commit d0c4690

Browse files
committed
feat(tanstack-query): add name and case options
1 parent 4d43c09 commit d0c4690

File tree

20 files changed

+1509
-386
lines changed

20 files changed

+1509
-386
lines changed

packages/openapi-ts-tests/test/openapi-ts.config.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ export default defineConfig(() => {
6060
// 'invalid',
6161
// 'servers-entry.yaml',
6262
// ),
63-
// path: path.resolve(__dirname, 'spec', '3.1.x', 'validators.yaml'),
64-
path: path.resolve(__dirname, 'spec', 'v3-transforms.json'),
63+
path: path.resolve(__dirname, 'spec', '3.1.x', 'full.yaml'),
64+
// path: path.resolve(__dirname, 'spec', 'v3-transforms.json'),
6565
// path: 'http://localhost:4000/',
6666
// path: 'https://get.heyapi.dev/',
6767
// path: 'https://get.heyapi.dev/hey-api/backend?branch=main&version=1.0.0',
@@ -150,13 +150,25 @@ export default defineConfig(() => {
150150
// name: 'fastify',
151151
},
152152
{
153+
case: 'SCREAMING_SNAKE_CASE',
154+
comments: false,
153155
exportFromIndex: true,
154-
infiniteQueryKeyNameBuilder: '{{name}}IQK',
155-
infiniteQueryOptionsNameBuilder: '{{name}}InfiniteQuery',
156-
mutationOptionsNameBuilder: '{{name}}MutationOptions',
157-
// name: '@tanstack/react-query',
158-
queryKeyNameBuilder: '{{name}}QK',
159-
queryOptionsNameBuilder: '{{name}}Query',
156+
infiniteQueryKeys: {
157+
name: '{{name}}IQK',
158+
},
159+
infiniteQueryOptions: {
160+
name: '{{name}}IQO',
161+
},
162+
mutationOptions: {
163+
name: '{{name}}MO',
164+
},
165+
name: '@tanstack/react-query',
166+
queryKeys: {
167+
name: '{{name}}QK',
168+
},
169+
queryOptions: {
170+
name: '{{name}}QO',
171+
},
160172
},
161173
{
162174
// comments: false,

packages/openapi-ts-tests/test/plugins.test.ts

Lines changed: 75 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,22 @@ for (const version of versions) {
220220
output: 'name-builder',
221221
plugins: [
222222
{
223-
infiniteQueryKeyNameBuilder: '{{name}}A',
224-
infiniteQueryOptionsNameBuilder: '{{name}}B',
225-
mutationOptionsNameBuilder: '{{name}}C',
223+
infiniteQueryKeys: {
224+
name: '{{name}}A',
225+
},
226+
infiniteQueryOptions: {
227+
name: '{{name}}B',
228+
},
229+
mutationOptions: {
230+
name: '{{name}}C',
231+
},
226232
name: '@tanstack/angular-query-experimental',
227-
queryKeyNameBuilder: '{{name}}D',
228-
queryOptionsNameBuilder: '{{name}}E',
233+
queryKeys: {
234+
name: '{{name}}D',
235+
},
236+
queryOptions: {
237+
name: '{{name}}E',
238+
},
229239
},
230240
'@hey-api/client-fetch',
231241
'@hey-api/sdk',
@@ -240,12 +250,22 @@ for (const version of versions) {
240250
output: 'name-builder',
241251
plugins: [
242252
{
243-
infiniteQueryKeyNameBuilder: '{{name}}A',
244-
infiniteQueryOptionsNameBuilder: '{{name}}B',
245-
mutationOptionsNameBuilder: '{{name}}C',
253+
infiniteQueryKeys: {
254+
name: '{{name}}A',
255+
},
256+
infiniteQueryOptions: {
257+
name: '{{name}}B',
258+
},
259+
mutationOptions: {
260+
name: '{{name}}C',
261+
},
246262
name: '@tanstack/react-query',
247-
queryKeyNameBuilder: '{{name}}D',
248-
queryOptionsNameBuilder: '{{name}}E',
263+
queryKeys: {
264+
name: '{{name}}D',
265+
},
266+
queryOptions: {
267+
name: '{{name}}E',
268+
},
249269
},
250270
'@hey-api/client-fetch',
251271
'@hey-api/sdk',
@@ -260,12 +280,22 @@ for (const version of versions) {
260280
output: 'name-builder',
261281
plugins: [
262282
{
263-
infiniteQueryKeyNameBuilder: '{{name}}A',
264-
infiniteQueryOptionsNameBuilder: '{{name}}B',
265-
mutationOptionsNameBuilder: '{{name}}C',
283+
infiniteQueryKeys: {
284+
name: '{{name}}A',
285+
},
286+
infiniteQueryOptions: {
287+
name: '{{name}}B',
288+
},
289+
mutationOptions: {
290+
name: '{{name}}C',
291+
},
266292
name: '@tanstack/solid-query',
267-
queryKeyNameBuilder: '{{name}}D',
268-
queryOptionsNameBuilder: '{{name}}E',
293+
queryKeys: {
294+
name: '{{name}}D',
295+
},
296+
queryOptions: {
297+
name: '{{name}}E',
298+
},
269299
},
270300
'@hey-api/client-fetch',
271301
'@hey-api/sdk',
@@ -280,12 +310,22 @@ for (const version of versions) {
280310
output: 'name-builder',
281311
plugins: [
282312
{
283-
infiniteQueryKeyNameBuilder: '{{name}}A',
284-
infiniteQueryOptionsNameBuilder: '{{name}}B',
285-
mutationOptionsNameBuilder: '{{name}}C',
313+
infiniteQueryKeys: {
314+
name: '{{name}}A',
315+
},
316+
infiniteQueryOptions: {
317+
name: '{{name}}B',
318+
},
319+
mutationOptions: {
320+
name: '{{name}}C',
321+
},
286322
name: '@tanstack/svelte-query',
287-
queryKeyNameBuilder: '{{name}}D',
288-
queryOptionsNameBuilder: '{{name}}E',
323+
queryKeys: {
324+
name: '{{name}}D',
325+
},
326+
queryOptions: {
327+
name: '{{name}}E',
328+
},
289329
},
290330
'@hey-api/client-fetch',
291331
'@hey-api/sdk',
@@ -300,12 +340,22 @@ for (const version of versions) {
300340
output: 'name-builder',
301341
plugins: [
302342
{
303-
infiniteQueryKeyNameBuilder: '{{name}}A',
304-
infiniteQueryOptionsNameBuilder: '{{name}}B',
305-
mutationOptionsNameBuilder: '{{name}}C',
343+
infiniteQueryKeys: {
344+
name: '{{name}}A',
345+
},
346+
infiniteQueryOptions: {
347+
name: '{{name}}B',
348+
},
349+
mutationOptions: {
350+
name: '{{name}}C',
351+
},
306352
name: '@tanstack/vue-query',
307-
queryKeyNameBuilder: '{{name}}D',
308-
queryOptionsNameBuilder: '{{name}}E',
353+
queryKeys: {
354+
name: '{{name}}D',
355+
},
356+
queryOptions: {
357+
name: '{{name}}E',
358+
},
309359
},
310360
'@hey-api/client-fetch',
311361
'@hey-api/sdk',

packages/openapi-ts/src/plugins/@tanstack/angular-query-experimental/config.ts

Lines changed: 73 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,86 @@
11
import { definePluginConfig } from '../../shared/utils/config';
22
import type { Plugin } from '../../types';
3-
import { defaultTanStackQueryConfig } from '../query-core/config';
43
import { handler } from '../query-core/plugin';
54
import { handlerLegacy } from '../query-core/plugin-legacy';
6-
import type { Config } from './types';
5+
import type { Config, ResolvedConfig } from './types';
76

8-
export const defaultConfig: Plugin.Config<Config> = {
9-
config: defaultTanStackQueryConfig,
7+
export const defaultConfig: Plugin.Config<Config, ResolvedConfig> = {
8+
config: {
9+
case: 'camelCase',
10+
comments: true,
11+
exportFromIndex: false,
12+
},
1013
dependencies: ['@hey-api/sdk', '@hey-api/typescript'],
1114
handler,
1215
handlerLegacy,
1316
name: '@tanstack/angular-query-experimental',
1417
output: '@tanstack/angular-query-experimental',
18+
resolveConfig: (plugin, context) => {
19+
plugin.config.infiniteQueryKeys = context.valueToObject({
20+
defaultValue: {
21+
case: plugin.config.case ?? 'camelCase',
22+
enabled: true,
23+
name: '{{name}}InfiniteQueryKey',
24+
},
25+
mappers: {
26+
boolean: (enabled) => ({ enabled }),
27+
string: (name) => ({ enabled: true, name }),
28+
},
29+
value: plugin.config.infiniteQueryKeys,
30+
});
31+
32+
plugin.config.infiniteQueryOptions = context.valueToObject({
33+
defaultValue: {
34+
case: plugin.config.case ?? 'camelCase',
35+
enabled: true,
36+
name: '{{name}}InfiniteOptions',
37+
},
38+
mappers: {
39+
boolean: (enabled) => ({ enabled }),
40+
string: (name) => ({ enabled: true, name }),
41+
},
42+
value: plugin.config.infiniteQueryOptions,
43+
});
44+
45+
plugin.config.mutationOptions = context.valueToObject({
46+
defaultValue: {
47+
case: plugin.config.case ?? 'camelCase',
48+
enabled: true,
49+
name: '{{name}}Mutation',
50+
},
51+
mappers: {
52+
boolean: (enabled) => ({ enabled }),
53+
string: (name) => ({ enabled: true, name }),
54+
},
55+
value: plugin.config.mutationOptions,
56+
});
57+
58+
plugin.config.queryKeys = context.valueToObject({
59+
defaultValue: {
60+
case: plugin.config.case ?? 'camelCase',
61+
enabled: true,
62+
name: '{{name}}QueryKey',
63+
},
64+
mappers: {
65+
boolean: (enabled) => ({ enabled }),
66+
string: (name) => ({ enabled: true, name }),
67+
},
68+
value: plugin.config.queryKeys,
69+
});
70+
71+
plugin.config.queryOptions = context.valueToObject({
72+
defaultValue: {
73+
case: plugin.config.case ?? 'camelCase',
74+
enabled: true,
75+
name: '{{name}}Options',
76+
},
77+
mappers: {
78+
boolean: (enabled) => ({ enabled }),
79+
string: (name) => ({ enabled: true, name }),
80+
},
81+
value: plugin.config.queryOptions,
82+
});
83+
},
1584
};
1685

1786
/**

0 commit comments

Comments
 (0)