Skip to content

Commit 0497887

Browse files
committed
fix: parameter name generation
1 parent f021e38 commit 0497887

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/schema-to-typescript/common/operation-methods.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
expressionStatement,
1010
Identifier,
1111
identifier,
12+
isValidIdentifier,
1213
memberExpression,
1314
objectExpression,
1415
objectPattern,
@@ -63,19 +64,24 @@ function sortParameters(parameters: OpenApiParameter[]) {
6364

6465
function generateUniqueName(source: string, postfixes: string[], usedNames: Record<string, true>) {
6566
let result = applyEntityNameCase(source, 'camelCase');
67+
if (!result && isValidIdentifier(source)) {
68+
result = source;
69+
}
6670
if (!usedNames[result]) {
6771
return result;
6872
}
6973
for (const postfix of postfixes) {
7074
const result = applyEntityNameCase(`${source} ${postfix}`, 'camelCase');
71-
if (!usedNames[result]) {
75+
if (result && !usedNames[result]) {
7276
return result;
7377
}
7478
}
7579
let i = 0;
80+
const baseName =
81+
applyEntityNameCase(source, 'camelCase') || (isValidIdentifier(source) ? source : postfixes[0]) || 'param';
7682
while (usedNames[result]) {
7783
i++;
78-
result = applyEntityNameCase(`${source} ${i}`, 'camelCase');
84+
result = applyEntityNameCase(`${baseName} ${i}`, 'camelCase');
7985
}
8086
return result;
8187
}

src/utils/test/string-utils.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ const camelCaseTestCases = {
5151
Hello1World11foo: 'hello1World11Foo',
5252
Hello1: 'hello1',
5353
hello1: 'hello1',
54+
BaseV1ApiClient: 'baseV1ApiClient',
5455
h2w: 'h2W'
5556
};
5657

0 commit comments

Comments
 (0)