Skip to content

Commit 4603a7e

Browse files
committed
fix: bug #1668
1 parent 370a126 commit 4603a7e

6 files changed

Lines changed: 557 additions & 13 deletions

File tree

.changeset/deep-paths-stand.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"swagger-typescript-api": patch
3+
---
4+
5+
fixed bug #1668 (random of type names)

src/component-type-name-resolver.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { consola } from "consola";
2+
import { compact, uniq } from "es-toolkit";
23
import type { CodeGenConfig } from "./configuration.js";
34
import { NameResolver } from "./util/name-resolver.js";
4-
import { getRandomInt } from "./util/random.js";
55

66
export class ComponentTypeNameResolver extends NameResolver {
77
counter = 1;
@@ -10,15 +10,18 @@ export class ComponentTypeNameResolver extends NameResolver {
1010

1111
constructor(config: CodeGenConfig, reservedNames: string[]) {
1212
super(config, reservedNames, (variants) => {
13-
const randomVariant = variants[getRandomInt(0, variants.length - 1)];
14-
if (randomVariant) {
15-
if (!this.countersByVariant.has(randomVariant)) {
16-
this.countersByVariant.set(randomVariant, 0);
13+
const sortedVariants = uniq(compact(variants)).sort((a, b) =>
14+
a.localeCompare(b),
15+
);
16+
const baseVariant = sortedVariants[0];
17+
if (baseVariant) {
18+
if (!this.countersByVariant.has(baseVariant)) {
19+
this.countersByVariant.set(baseVariant, 0);
1720
}
1821
const variantCounter =
19-
(this.countersByVariant.get(randomVariant) as number) + 1;
20-
this.countersByVariant.set(randomVariant, variantCounter);
21-
const dirtyResolvedName = `${randomVariant}${variantCounter}`;
22+
(this.countersByVariant.get(baseVariant) as number) + 1;
23+
this.countersByVariant.set(baseVariant, variantCounter);
24+
const dirtyResolvedName = `${baseVariant}${variantCounter}`;
2225
consola.debug(
2326
"generated dirty resolved type name for component - ",
2427
dirtyResolvedName,

src/util/random.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)