Skip to content

Commit 8760a85

Browse files
committed
refactor(query): use serviceFunctionIdentifier for operation IDs
1 parent 62e874c commit 8760a85

File tree

4 files changed

+44
-8
lines changed

4 files changed

+44
-8
lines changed

packages/openapi-ts/src/plugins/@tanstack/query-core/infiniteQueryOptions.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { tsNodeToString } from '../../../compiler/utils';
55
import { clientApi } from '../../../generate/client';
66
import { operationPagination } from '../../../ir/operation';
77
import type { IR } from '../../../ir/types';
8+
import { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';
89
import { schemaToType } from '../../@hey-api/typescript/plugin';
910
import {
1011
createOperationComment,
@@ -313,9 +314,16 @@ export const createInfiniteQueryOptions = ({
313314
});
314315
file.add(node);
315316

317+
const functionName = serviceFunctionIdentifier({
318+
config: plugin.context.config,
319+
handleIllegal: true,
320+
id: operation.id,
321+
operation,
322+
});
323+
316324
const identifierInfiniteQueryKey = file.identifier({
317325
// TODO: refactor for better cross-plugin compatibility
318-
$ref: `#/tanstack-query-infinite-query-key/${operation.id}`,
326+
$ref: `#/tanstack-query-infinite-query-key/${functionName}`,
319327
case: plugin.config.infiniteQueryKeys.case,
320328
nameTransformer: plugin.config.infiniteQueryKeys.name,
321329
namespace: 'value',
@@ -430,7 +438,7 @@ export const createInfiniteQueryOptions = ({
430438

431439
const identifierInfiniteQueryOptions = file.identifier({
432440
// TODO: refactor for better cross-plugin compatibility
433-
$ref: `#/tanstack-query-infinite-query-options/${operation.id}`,
441+
$ref: `#/tanstack-query-infinite-query-options/${functionName}`,
434442
case: plugin.config.infiniteQueryOptions.case,
435443
create: true,
436444
nameTransformer: plugin.config.infiniteQueryOptions.name,

packages/openapi-ts/src/plugins/@tanstack/query-core/mutationOptions.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type ts from 'typescript';
22

33
import { compiler } from '../../../compiler';
44
import type { IR } from '../../../ir/types';
5+
import { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';
56
import { createOperationComment } from '../../shared/utils/operation';
67
import type { PluginInstance, PluginState } from './types';
78
import { useTypeData, useTypeError, useTypeResponse } from './useType';
@@ -101,9 +102,17 @@ export const createMutationOptions = ({
101102
);
102103
}
103104

105+
// Get the function name from SDK plugin instead of using operation.id directly
106+
const functionName = serviceFunctionIdentifier({
107+
config: plugin.context.config,
108+
handleIllegal: true,
109+
id: operation.id,
110+
operation,
111+
});
112+
104113
const identifier = file.identifier({
105114
// TODO: refactor for better cross-plugin compatibility
106-
$ref: `#/tanstack-query-mutation-options/${operation.id}`,
115+
$ref: `#/tanstack-query-mutation-options/${functionName}`,
107116
case: plugin.config.mutationOptions.case,
108117
create: true,
109118
nameTransformer: plugin.config.mutationOptions.name,

packages/openapi-ts/src/plugins/@tanstack/query-core/queryKey.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { clientApi } from '../../../generate/client';
33
import { hasOperationDataRequired } from '../../../ir/operation';
44
import type { IR } from '../../../ir/types';
55
import { getClientBaseUrlKey } from '../../@hey-api/client-core/utils';
6+
import { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';
67
import type { PluginInstance } from './types';
78
import { useTypeData } from './useType';
89

@@ -304,18 +305,27 @@ export const queryKeyStatement = ({
304305
}) => {
305306
const file = plugin.context.file({ id: plugin.name })!;
306307
const typeData = useTypeData({ operation, plugin });
308+
309+
// Get the function name from SDK plugin instead of using operation.id directly
310+
const functionName = serviceFunctionIdentifier({
311+
config: plugin.context.config,
312+
handleIllegal: true,
313+
id: operation.id,
314+
operation,
315+
});
316+
307317
const identifier = isInfinite
308318
? file.identifier({
309319
// TODO: refactor for better cross-plugin compatibility
310-
$ref: `#/tanstack-query-infinite-query-key/${operation.id}`,
320+
$ref: `#/tanstack-query-infinite-query-key/${functionName}`,
311321
case: plugin.config.infiniteQueryKeys.case,
312322
create: true,
313323
nameTransformer: plugin.config.infiniteQueryKeys.name,
314324
namespace: 'value',
315325
})
316326
: file.identifier({
317327
// TODO: refactor for better cross-plugin compatibility
318-
$ref: `#/tanstack-query-query-key/${operation.id}`,
328+
$ref: `#/tanstack-query-query-key/${functionName}`,
319329
case: plugin.config.queryKeys.case,
320330
create: true,
321331
nameTransformer: plugin.config.queryKeys.name,
@@ -333,7 +343,7 @@ export const queryKeyStatement = ({
333343
],
334344
returnType: isInfinite ? typeQueryKey : undefined,
335345
statements: createQueryKeyLiteral({
336-
id: operation.id,
346+
id: functionName,
337347
isInfinite,
338348
plugin,
339349
}),

packages/openapi-ts/src/plugins/@tanstack/query-core/queryOptions.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type ts from 'typescript';
22

33
import { compiler } from '../../../compiler';
44
import type { IR } from '../../../ir/types';
5+
import { serviceFunctionIdentifier } from '../../@hey-api/sdk/plugin-legacy';
56
import {
67
createOperationComment,
78
isOperationOptionsRequired,
@@ -68,9 +69,17 @@ export const createQueryOptions = ({
6869

6970
const typeData = useTypeData({ operation, plugin });
7071

72+
// Get the function name from SDK plugin instead of using operation.id directly
73+
const functionName = serviceFunctionIdentifier({
74+
config: plugin.context.config,
75+
handleIllegal: true,
76+
id: operation.id,
77+
operation,
78+
});
79+
7180
const identifierQueryKey = file.identifier({
7281
// TODO: refactor for better cross-plugin compatibility
73-
$ref: `#/tanstack-query-query-key/${operation.id}`,
82+
$ref: `#/tanstack-query-query-key/${functionName}`,
7483
case: plugin.config.queryKeys.case,
7584
nameTransformer: plugin.config.queryKeys.name,
7685
namespace: 'value',
@@ -129,7 +138,7 @@ export const createQueryOptions = ({
129138

130139
const identifierQueryOptions = file.identifier({
131140
// TODO: refactor for better cross-plugin compatibility
132-
$ref: `#/tanstack-query-query-options/${operation.id}`,
141+
$ref: `#/tanstack-query-query-options/${functionName}`,
133142
case: plugin.config.queryOptions.case,
134143
create: true,
135144
nameTransformer: plugin.config.queryOptions.name,

0 commit comments

Comments
 (0)