Skip to content

Commit fb0f83c

Browse files
committed
fix: enabled useTypeImports by default.
1 parent 407fc2d commit fb0f83c

File tree

6 files changed

+45
-41
lines changed

6 files changed

+45
-41
lines changed

plugins/typescript/src/generators/generateReactQueryComponents.test.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ describe("generateReactQueryComponents", () => {
9393
*/
9494
import * as reactQuery from "@tanstack/react-query";
9595
import {
96+
type PetstoreContext,
9697
usePetstoreContext,
97-
PetstoreContext,
9898
queryKeyFn,
9999
} from "./petstoreContext";
100100
import { deepMerge } from "./petstoreUtils";
@@ -259,8 +259,8 @@ describe("generateReactQueryComponents", () => {
259259
*/
260260
import * as reactQuery from "@tanstack/react-query";
261261
import {
262+
type PetstoreContext,
262263
usePetstoreContext,
263-
PetstoreContext,
264264
queryKeyFn,
265265
} from "./petstoreContext";
266266
import { deepMerge } from "./petstoreUtils";
@@ -450,8 +450,8 @@ describe("generateReactQueryComponents", () => {
450450
*/
451451
import * as reactQuery from "@tanstack/react-query";
452452
import {
453+
type PetstoreContext,
453454
usePetstoreContext,
454-
PetstoreContext,
455455
queryKeyFn,
456456
} from "./petstoreContext";
457457
import { deepMerge } from "./petstoreUtils";
@@ -656,8 +656,8 @@ describe("generateReactQueryComponents", () => {
656656
*/
657657
import * as reactQuery from "@tanstack/react-query";
658658
import {
659+
type PetstoreContext,
659660
usePetstoreContext,
660-
PetstoreContext,
661661
queryKeyFn,
662662
} from "./petstoreContext";
663663
import { deepMerge } from "./petstoreUtils";
@@ -848,8 +848,8 @@ describe("generateReactQueryComponents", () => {
848848
*/
849849
import * as reactQuery from "@tanstack/react-query";
850850
import {
851+
type PetstoreContext,
851852
usePetstoreContext,
852-
PetstoreContext,
853853
queryKeyFn,
854854
} from "./petstoreContext";
855855
import { deepMerge } from "./petstoreUtils";
@@ -1041,8 +1041,8 @@ describe("generateReactQueryComponents", () => {
10411041
*/
10421042
import * as reactQuery from "@tanstack/react-query";
10431043
import {
1044+
type PetstoreContext,
10441045
usePetstoreContext,
1045-
PetstoreContext,
10461046
queryKeyFn,
10471047
} from "./petstoreContext";
10481048
import { deepMerge } from "./petstoreUtils";
@@ -1248,8 +1248,8 @@ describe("generateReactQueryComponents", () => {
12481248
*/
12491249
import * as reactQuery from "@tanstack/react-query";
12501250
import {
1251+
type PetstoreContext,
12511252
usePetstoreContext,
1252-
PetstoreContext,
12531253
queryKeyFn,
12541254
} from "./petstoreContext";
12551255
import { deepMerge } from "./petstoreUtils";
@@ -1447,8 +1447,8 @@ describe("generateReactQueryComponents", () => {
14471447
*/
14481448
import * as reactQuery from "@tanstack/react-query";
14491449
import {
1450+
type PetstoreContext,
14501451
usePetstoreContext,
1451-
PetstoreContext,
14521452
queryKeyFn,
14531453
} from "./petstoreContext";
14541454
import { deepMerge } from "./petstoreUtils";
@@ -1654,8 +1654,8 @@ describe("generateReactQueryComponents", () => {
16541654
*/
16551655
import * as reactQuery from "@tanstack/react-query";
16561656
import {
1657+
type PetstoreContext,
16571658
usePetstoreContext,
1658-
PetstoreContext,
16591659
queryKeyFn,
16601660
} from "./petstoreContext";
16611661
import { deepMerge } from "./petstoreUtils";
@@ -1809,8 +1809,8 @@ describe("generateReactQueryComponents", () => {
18091809
*/
18101810
import * as reactQuery from "@tanstack/react-query";
18111811
import {
1812+
type PetstoreContext,
18121813
usePetstoreContext,
1813-
PetstoreContext,
18141814
queryKeyFn,
18151815
} from "./petstoreContext";
18161816
import { deepMerge } from "./petstoreUtils";
@@ -2012,8 +2012,8 @@ describe("generateReactQueryComponents", () => {
20122012
*/
20132013
import * as reactQuery from "@tanstack/react-query";
20142014
import {
2015+
type PetstoreContext,
20152016
usePetstoreContext,
2016-
PetstoreContext,
20172017
queryKeyFn,
20182018
} from "./petstoreContext";
20192019
import { deepMerge } from "./petstoreUtils";
@@ -2173,8 +2173,8 @@ describe("generateReactQueryComponents", () => {
21732173
*/
21742174
import * as reactQuery from "@tanstack/react-query";
21752175
import {
2176+
type PetstoreContext,
21762177
usePetstoreContext,
2177-
PetstoreContext,
21782178
queryKeyFn,
21792179
} from "./petstoreContext";
21802180
import { deepMerge } from "./petstoreUtils";
@@ -2307,8 +2307,8 @@ describe("generateReactQueryComponents", () => {
23072307
*/
23082308
import * as reactQuery from "@tanstack/react-query";
23092309
import {
2310+
type PetstoreContext,
23102311
usePetstoreContext,
2311-
PetstoreContext,
23122312
queryKeyFn,
23132313
} from "./petstoreContext";
23142314
import { deepMerge } from "./petstoreUtils";
@@ -2445,8 +2445,8 @@ describe("generateReactQueryComponents", () => {
24452445
*/
24462446
import * as reactQuery from "@tanstack/react-query";
24472447
import {
2448+
type PetstoreContext,
24482449
usePetstoreContext,
2449-
PetstoreContext,
24502450
queryKeyFn,
24512451
} from "./petstoreContext";
24522452
import { deepMerge } from "./petstoreUtils";
@@ -2583,8 +2583,8 @@ describe("generateReactQueryComponents", () => {
25832583
*/
25842584
import * as reactQuery from "@tanstack/react-query";
25852585
import {
2586+
type PetstoreContext,
25862587
usePetstoreContext,
2587-
PetstoreContext,
25882588
queryKeyFn,
25892589
} from "./petstoreContext";
25902590
import { deepMerge } from "./petstoreUtils";
@@ -2720,7 +2720,7 @@ describe("generateReactQueryComponents", () => {
27202720
* @version 1.0.0
27212721
*/
27222722
import * as reactQuery from "@tanstack/react-query";
2723-
import { useContext, Context, queryKeyFn } from "./context";
2723+
import { type Context, useContext, queryKeyFn } from "./context";
27242724
import { deepMerge } from "./utils";
27252725
import type * as Fetcher from "./fetcher";
27262726
import { fetch } from "./fetcher";

plugins/typescript/src/generators/generateReactQueryComponents.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ export const generateReactQueryComponents = async (
4545
context: Context,
4646
config: Config
4747
) => {
48+
const { useTypeImports = true, ...restConfig } = config;
49+
const finalConfig = { useTypeImports, ...restConfig };
4850
const sourceFile = ts.createSourceFile(
4951
"index.ts",
5052
"",
@@ -72,13 +74,13 @@ export const generateReactQueryComponents = async (
7274
.join("\n");
7375

7476
const filenamePrefix =
75-
c.snake(config.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
77+
c.snake(finalConfig.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
7678

7779
const formatFilename =
78-
typeof config.formatFilename === "function"
79-
? config.formatFilename
80-
: config.filenameCase
81-
? c[config.filenameCase]
80+
typeof finalConfig.formatFilename === "function"
81+
? finalConfig.formatFilename
82+
: finalConfig.filenameCase
83+
? c[finalConfig.filenameCase]
8284
: c.camel;
8385

8486
const filename = formatFilename(filenamePrefix + "-components");
@@ -100,15 +102,15 @@ export const generateReactQueryComponents = async (
100102
prefix: filenamePrefix,
101103
contextPath: contextFilename,
102104
baseUrl: get(context.openAPIDocument, "servers.0.url"),
103-
useTypeImports: config.useTypeImports,
105+
useTypeImports: finalConfig.useTypeImports,
104106
})
105107
);
106108
}
107109

108110
if (!context.existsFile(`${contextFilename}.ts`)) {
109111
context.writeFile(
110112
`${contextFilename}.ts`,
111-
getContext(filenamePrefix, filename, config.useTypeImports)
113+
getContext(filenamePrefix, filename, finalConfig.useTypeImports)
112114
);
113115
}
114116

@@ -164,7 +166,7 @@ export const generateReactQueryComponents = async (
164166
operation,
165167
operationId,
166168
printNodes,
167-
injectedHeaders: config.injectedHeaders,
169+
injectedHeaders: finalConfig.injectedHeaders,
168170
pathParameters: verbs.parameters,
169171
variablesExtraPropsType: f.createIndexedAccessTypeNode(
170172
f.createTypeReferenceNode(
@@ -333,10 +335,10 @@ export const generateReactQueryComponents = async (
333335
const { nodes: usedImportsNodes } = getUsedImports(
334336
nodes,
335337
{
336-
...config.schemasFiles,
338+
...finalConfig.schemasFiles,
337339
utils: utilsFilename,
338340
},
339-
config.useTypeImports
341+
finalConfig.useTypeImports
340342
);
341343

342344
if (!context.existsFile(`${utilsFilename}.ts`)) {
@@ -348,7 +350,7 @@ export const generateReactQueryComponents = async (
348350
printNodes([
349351
createWatermark(context.openAPIDocument.info),
350352
createReactQueryImport(),
351-
...(config.useTypeImports
353+
...(finalConfig.useTypeImports
352354
? [
353355
createNamedImportWithTypes(
354356
[contextTypeName],

plugins/typescript/src/generators/generateSchemaTypes.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ export const generateSchemaTypes = async (
2727
context: Context,
2828
config: Config = {}
2929
) => {
30+
const { useTypeImports = true, ...restConfig } = config;
31+
const finalConfig = { useTypeImports, ...restConfig };
3032
const { components } = context.openAPIDocument;
3133
if (!components) {
3234
throw new Error("No components founds!");
@@ -67,7 +69,7 @@ export const generateSchemaTypes = async (
6769
openAPIDocument: context.openAPIDocument,
6870
currentComponent: currentComponent,
6971
},
70-
config.useEnums
72+
finalConfig.useEnums
7173
),
7274
],
7375
[]
@@ -77,7 +79,7 @@ export const generateSchemaTypes = async (
7779
componentSchemaEntries: [string, SchemaObject | ReferenceObject][],
7880
currentComponent: OpenAPIComponentType
7981
) => {
80-
if (config.useEnums) {
82+
if (finalConfig.useEnums) {
8183
const enumSchemaEntries = getEnumProperties(componentSchemaEntries);
8284
const enumSchemas = enumSchemaEntries.reduce<ts.Node[]>(
8385
(mem, [name, schema]) => [
@@ -104,13 +106,13 @@ export const generateSchemaTypes = async (
104106
};
105107

106108
const filenamePrefix =
107-
c.snake(config.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
109+
c.snake(finalConfig.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
108110

109111
const formatFilename =
110-
typeof config.formatFilename === "function"
111-
? config.formatFilename
112-
: config.filenameCase
113-
? c[config.filenameCase]
112+
typeof finalConfig.formatFilename === "function"
113+
? finalConfig.formatFilename
114+
: finalConfig.filenameCase
115+
? c[finalConfig.filenameCase]
114116
: c.camel;
115117
const files = {
116118
requestBodies: formatFilename(filenamePrefix + "-request-bodies"),
@@ -132,7 +134,7 @@ export const generateSchemaTypes = async (
132134
files.schemas + ".ts",
133135
printNodes([
134136
createWatermark(context.openAPIDocument.info),
135-
...getUsedImports(schemas, files, config.useTypeImports).nodes,
137+
...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes,
136138
...schemas,
137139
])
138140
);
@@ -163,7 +165,7 @@ export const generateSchemaTypes = async (
163165
files.responses + ".ts",
164166
printNodes([
165167
createWatermark(context.openAPIDocument.info),
166-
...getUsedImports(schemas, files, config.useTypeImports).nodes,
168+
...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes,
167169
...schemas,
168170
])
169171
);
@@ -196,7 +198,7 @@ export const generateSchemaTypes = async (
196198
files.requestBodies + ".ts",
197199
printNodes([
198200
createWatermark(context.openAPIDocument.info),
199-
...getUsedImports(schemas, files, config.useTypeImports).nodes,
201+
...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes,
200202
...schemas,
201203
])
202204
);
@@ -224,7 +226,7 @@ export const generateSchemaTypes = async (
224226
files.parameters + ".ts",
225227
printNodes([
226228
createWatermark(context.openAPIDocument.info),
227-
...getUsedImports(schemas, files, config.useTypeImports).nodes,
229+
...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes,
228230
...schemas,
229231
])
230232
);

plugins/typescript/src/generators/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export type ConfigBase = {
4040
* Use type-only imports for types and interfaces.
4141
* This is useful when using TypeScript's verbatimModuleSyntax option.
4242
*
43-
* @default false
43+
* @default true
4444
*/
4545
useTypeImports?: boolean;
4646
};

plugins/typescript/src/templates/context.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { pascal } from "case";
33
export const getContext = (
44
prefix: string,
55
componentsFile: string,
6-
useTypeImports = false
6+
useTypeImports = true
77
) =>
88
`import {
99
skipToken,

plugins/typescript/src/templates/fetcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export const getFetcher = ({
99
prefix,
1010
contextPath,
1111
baseUrl,
12-
useTypeImports = false,
12+
useTypeImports = true,
1313
}: {
1414
prefix: string;
1515
contextPath?: string;

0 commit comments

Comments
 (0)