Skip to content

Commit 40d6e90

Browse files
committed
refactor(query): use serviceFunctionIdentifier for operation IDs
1 parent d687cdd commit 40d6e90

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 {
910
createOperationComment,
1011
isOperationOptionsRequired,
@@ -312,9 +313,16 @@ export const createInfiniteQueryOptions = ({
312313
});
313314
file.add(node);
314315

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

430438
const identifierInfiniteQueryOptions = file.identifier({
431439
// TODO: refactor for better cross-plugin compatibility
432-
$ref: `#/tanstack-query-infinite-query-options/${operation.id}`,
440+
$ref: `#/tanstack-query-infinite-query-options/${functionName}`,
433441
case: plugin.config.infiniteQueryOptions.case,
434442
create: true,
435443
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

@@ -306,18 +307,27 @@ export const queryKeyStatement = ({
306307
}) => {
307308
const file = plugin.context.file({ id: plugin.name })!;
308309
const typeData = useTypeData({ operation, plugin });
310+
311+
// Get the function name from SDK plugin instead of using operation.id directly
312+
const functionName = serviceFunctionIdentifier({
313+
config: plugin.context.config,
314+
handleIllegal: true,
315+
id: operation.id,
316+
operation,
317+
});
318+
309319
const identifier = isInfinite
310320
? file.identifier({
311321
// TODO: refactor for better cross-plugin compatibility
312-
$ref: `#/tanstack-query-infinite-query-key/${operation.id}`,
322+
$ref: `#/tanstack-query-infinite-query-key/${functionName}`,
313323
case: plugin.config.infiniteQueryKeys.case,
314324
create: true,
315325
nameTransformer: plugin.config.infiniteQueryKeys.name,
316326
namespace: 'value',
317327
})
318328
: file.identifier({
319329
// TODO: refactor for better cross-plugin compatibility
320-
$ref: `#/tanstack-query-query-key/${operation.id}`,
330+
$ref: `#/tanstack-query-query-key/${functionName}`,
321331
case: plugin.config.queryKeys.case,
322332
create: true,
323333
nameTransformer: plugin.config.queryKeys.name,
@@ -335,7 +345,7 @@ export const queryKeyStatement = ({
335345
],
336346
returnType: isInfinite ? typeQueryKey : undefined,
337347
statements: createQueryKeyLiteral({
338-
id: operation.id,
348+
id: functionName,
339349
isInfinite,
340350
plugin,
341351
}),

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)