Skip to content

Commit b9363e1

Browse files
FabianFrankmarkerikson
authored andcommitted
rtk query code gen: add optional prettierrc override
Allow users to optionally provide the explicit location of the prettier config to use. For example unblocks users that are using an incompatible/different major version of prettier as part of their project that breaks the prettier version rtk query code gen depends on. see #4038
1 parent f3756c3 commit b9363e1

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

packages/rtk-query-codegen-openapi/src/index.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,14 @@ export async function generateEndpoints(options: GenerationOptions): Promise<str
1515
const { generateApi } = await import('./generate');
1616
return generateApi(schemaAbsPath, options);
1717
});
18-
const { outputFile } = options;
18+
const { outputFile, prettierConfigFile } = options;
1919
if (outputFile) {
20-
fs.writeFileSync(path.resolve(process.cwd(), outputFile), await prettify(outputFile, sourceCode));
20+
fs.writeFileSync(
21+
path.resolve(process.cwd(), outputFile),
22+
await prettify(outputFile, sourceCode, prettierConfigFile)
23+
);
2124
} else {
22-
return await prettify(null, sourceCode);
25+
return await prettify(null, sourceCode, prettierConfigFile);
2326
}
2427
}
2528

packages/rtk-query-codegen-openapi/src/types.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,17 @@ export interface CommonOptions {
7979
*/
8080
mergeReadWriteOnly?: boolean;
8181
/**
82+
*
8283
* HTTPResolverOptions object that is passed to the SwaggerParser bundle function.
8384
*/
8485
httpResolverOptions?: SwaggerParser.HTTPResolverOptions;
86+
87+
/**
88+
* defaults to undefined
89+
* If present the given file will be used as prettier config when formatting the generated code. If undefined the default prettier config
90+
* resolution mechanism will be used.
91+
*/
92+
prettierConfigFile?: string;
8593
}
8694

8795
export type TextMatcher = string | RegExp | (string | RegExp)[];

packages/rtk-query-codegen-openapi/src/utils/prettier.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ const EXTENSION_TO_PARSER: Record<string, string> = {
1919
json: 'json',
2020
};
2121

22-
export async function prettify(filePath: string | null, content: string): Promise<string> {
22+
export async function prettify(filePath: string | null, content: string, prettierConfigFile?: string): Promise<string> {
2323
let config = null;
2424
let parser = 'typescript';
2525

@@ -28,7 +28,13 @@ export async function prettify(filePath: string | null, content: string): Promis
2828
parser = EXTENSION_TO_PARSER[fileExtension];
2929
config = await prettier.resolveConfig(process.cwd(), {
3030
useCache: true,
31-
editorconfig: true,
31+
editorconfig: !prettierConfigFile,
32+
config: prettierConfigFile,
33+
});
34+
} else if (prettierConfigFile) {
35+
config = await prettier.resolveConfig(process.cwd(), {
36+
useCache: true,
37+
config: prettierConfigFile,
3238
});
3339
}
3440

0 commit comments

Comments
 (0)