From c5d99cc13b87170c368c0660c63321a61324cbb2 Mon Sep 17 00:00:00 2001 From: teovillanueva Date: Wed, 29 Oct 2025 19:17:08 -0300 Subject: [PATCH] feat: optionally format files --- cli/src/commands/GenerateCommand.ts | 16 +++++++++++----- .../src/generators/generateFetchers.ts | 6 ++++-- .../generators/generateReactQueryComponents.ts | 15 +++++++++++---- .../src/generators/generateSchemaTypes.ts | 12 ++++++++---- plugins/typescript/src/generators/types.ts | 9 ++++++++- 5 files changed, 42 insertions(+), 16 deletions(-) diff --git a/cli/src/commands/GenerateCommand.ts b/cli/src/commands/GenerateCommand.ts index 7fb0c7b..794157f 100644 --- a/cli/src/commands/GenerateCommand.ts +++ b/cli/src/commands/GenerateCommand.ts @@ -236,11 +236,17 @@ export class GenerateCommand extends Command { const openAPIDocument = await parseOpenAPISourceFile(sourceFile); const prettierConfig = await prettier.resolveConfig(process.cwd()); - const writeFile = async (file: string, data: string) => { - const updatedConfig = await prettier.format(data, { - parser: "babel-ts", - ...prettierConfig, - }); + const writeFile = async ( + file: string, + data: string, + format: boolean = true + ) => { + const updatedConfig = format + ? await prettier.format(data, { + parser: "babel-ts", + ...prettierConfig, + }) + : data; await fsExtra.outputFile( path.join(process.cwd(), config.outputDir, file), diff --git a/plugins/typescript/src/generators/generateFetchers.ts b/plugins/typescript/src/generators/generateFetchers.ts index 1e9c403..e4b5b6b 100644 --- a/plugins/typescript/src/generators/generateFetchers.ts +++ b/plugins/typescript/src/generators/generateFetchers.ts @@ -99,7 +99,8 @@ export const generateFetchers = async (context: Context, config: Config) => { prefix: filenamePrefix, baseUrl: get(context.openAPIDocument, "servers.0.url"), useTypeImports: config.useTypeImports, - }) + }), + config.format ); } else { const fetcherSourceText = await context.readFile(`${fetcherFilename}.ts`); @@ -252,6 +253,7 @@ export const generateFetchers = async (context: Context, config: Config) => { ), ...usedImportsNodes, ...nodes, - ]) + ]), + config.format ); }; diff --git a/plugins/typescript/src/generators/generateReactQueryComponents.ts b/plugins/typescript/src/generators/generateReactQueryComponents.ts index 7d75b41..2145e02 100644 --- a/plugins/typescript/src/generators/generateReactQueryComponents.ts +++ b/plugins/typescript/src/generators/generateReactQueryComponents.ts @@ -104,14 +104,16 @@ export const generateReactQueryComponents = async ( contextPath: contextFilename, baseUrl: get(context.openAPIDocument, "servers.0.url"), useTypeImports: finalConfig.useTypeImports, - }) + }), + finalConfig.format ); } if (!context.existsFile(`${contextFilename}.ts`)) { context.writeFile( `${contextFilename}.ts`, - getContext(filenamePrefix, filename, finalConfig.useTypeImports) + getContext(filenamePrefix, filename, finalConfig.useTypeImports), + finalConfig.format ); } @@ -343,7 +345,11 @@ export const generateReactQueryComponents = async ( ); if (!context.existsFile(`${utilsFilename}.ts`)) { - await context.writeFile(`${utilsFilename}.ts`, getUtils()); + await context.writeFile( + `${utilsFilename}.ts`, + getUtils(), + finalConfig.format + ); } await context.writeFile( @@ -372,7 +378,8 @@ export const generateReactQueryComponents = async ( ...usedImportsNodes, ...nodes, queryKeyManager, - ]) + ]), + finalConfig.format ); }; diff --git a/plugins/typescript/src/generators/generateSchemaTypes.ts b/plugins/typescript/src/generators/generateSchemaTypes.ts index c7f8846..ec8443c 100644 --- a/plugins/typescript/src/generators/generateSchemaTypes.ts +++ b/plugins/typescript/src/generators/generateSchemaTypes.ts @@ -137,7 +137,8 @@ export const generateSchemaTypes = async ( createWatermark(context.openAPIDocument.info), ...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes, ...schemas, - ]) + ]), + finalConfig.format ); } @@ -168,7 +169,8 @@ export const generateSchemaTypes = async ( createWatermark(context.openAPIDocument.info), ...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes, ...schemas, - ]) + ]), + finalConfig.format ); } } @@ -201,7 +203,8 @@ export const generateSchemaTypes = async ( createWatermark(context.openAPIDocument.info), ...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes, ...schemas, - ]) + ]), + finalConfig.format ); } } @@ -229,7 +232,8 @@ export const generateSchemaTypes = async ( createWatermark(context.openAPIDocument.info), ...getUsedImports(schemas, files, finalConfig.useTypeImports).nodes, ...schemas, - ]) + ]), + finalConfig.format ); } diff --git a/plugins/typescript/src/generators/types.ts b/plugins/typescript/src/generators/types.ts index 3494b74..5934d05 100644 --- a/plugins/typescript/src/generators/types.ts +++ b/plugins/typescript/src/generators/types.ts @@ -6,7 +6,7 @@ import * as c from "case"; */ export type Context = { openAPIDocument: OpenAPIObject; - writeFile: (file: string, data: string) => Promise; + writeFile: (file: string, data: string, format?: boolean) => Promise; readFile: (file: string) => Promise; existsFile: (file: string) => boolean; }; @@ -43,4 +43,11 @@ export type ConfigBase = { * @default true */ useTypeImports?: boolean; + + /** + * Format the generated code using prettier. + * + * @default true + */ + format?: boolean; };