Skip to content

Commit ea2cac8

Browse files
authored
feat: Added config formatFilename to allow more custom formatting of filenames (#231)
1 parent 447ef09 commit ea2cac8

File tree

5 files changed

+29
-4
lines changed

5 files changed

+29
-4
lines changed

plugins/typescript/src/generators/generateFetchers.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,12 @@ export const generateFetchers = async (context: Context, config: Config) => {
6565
const filenamePrefix =
6666
c.snake(config.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
6767

68-
const formatFilename = config.filenameCase ? c[config.filenameCase] : c.camel;
68+
const formatFilename =
69+
typeof config.formatFilename === "function"
70+
? config.formatFilename
71+
: config.filenameCase
72+
? c[config.filenameCase]
73+
: c.camel;
6974

7075
const filename = formatFilename(filenamePrefix + "-components");
7176

plugins/typescript/src/generators/generateReactQueryComponents.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,12 @@ export const generateReactQueryComponents = async (
7171
const filenamePrefix =
7272
c.snake(config.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
7373

74-
const formatFilename = config.filenameCase ? c[config.filenameCase] : c.camel;
74+
const formatFilename =
75+
typeof config.formatFilename === "function"
76+
? config.formatFilename
77+
: config.filenameCase
78+
? c[config.filenameCase]
79+
: c.camel;
7580

7681
const filename = formatFilename(filenamePrefix + "-components");
7782

plugins/typescript/src/generators/generateReactQueryFunctions.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,12 @@ export const generateReactQueryFunctions = async (
7272
const filenamePrefix =
7373
c.snake(config.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
7474

75-
const formatFilename = config.filenameCase ? c[config.filenameCase] : c.camel;
75+
const formatFilename =
76+
typeof config.formatFilename === "function"
77+
? config.formatFilename
78+
: config.filenameCase
79+
? c[config.filenameCase]
80+
: c.camel;
7681

7782
const filename = formatFilename(filenamePrefix + "-functions");
7883

plugins/typescript/src/generators/generateSchemaTypes.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,12 @@ export const generateSchemaTypes = async (
106106
const filenamePrefix =
107107
c.snake(config.filenamePrefix ?? context.openAPIDocument.info.title) + "-";
108108

109-
const formatFilename = config.filenameCase ? c[config.filenameCase] : c.camel;
109+
const formatFilename =
110+
typeof config.formatFilename === "function"
111+
? config.formatFilename
112+
: config.filenameCase
113+
? c[config.filenameCase]
114+
: c.camel;
110115
const files = {
111116
requestBodies: formatFilename(filenamePrefix + "-request-bodies"),
112117
schemas: formatFilename(filenamePrefix + "-schemas"),

plugins/typescript/src/generators/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ export type ConfigBase = {
2525
* @default camel
2626
*/
2727
filenameCase?: keyof Pick<typeof c, "snake" | "camel" | "kebab" | "pascal">;
28+
/**
29+
* Allows customizing the filename.
30+
* If provided, `filenameCase` will be ignored.
31+
*/
32+
formatFilename?: (filename: string) => string;
2833
/**
2934
* Allows using explicit enums instead of string unions.
3035
*

0 commit comments

Comments
 (0)