Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ export enum {{operationIdCamelCase}}{{enumName}} {
export const {{operationIdCamelCase}}{{enumName}} = {
{{#allowableValues}}
{{#enumVars}}
{{{name}}}: {{{value}}}{{^-last}},{{/-last}}
{{{name}}}: {{{value}}},
{{/enumVars}}
{{/allowableValues}}
} as const;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ export const {{enumName}} = {
* {{.}}
*/
{{/enumDescription}}
{{{name}}}: {{{value}}}{{^-last}},{{/-last}}
{{{name}}}: {{{value}}},
{{/enumVars}}
{{/allowableValues}}
} as const;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export const {{classname}} = {
* {{.}}
*/
{{/enumDescription}}
{{{name}}}: {{{value}}}{{^-last}},{{/-last}}
{{{name}}}: {{{value}}},
{{/enumVars}}
{{/allowableValues}}
} as const;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,4 +178,40 @@ public void testDeprecatedArrayAttribute() throws Exception {
// Verify the non-deprecated array property 'nicknames' is also present
TestUtils.assertFileContains(file, "'nicknames'?: Array<string>");
}

@Test
public void generatesTrailingCommasInAsConstEnumObjects() throws Exception {
final File output = Files.createTempDirectory("typescript_axios_trailing_commas_").toFile();
output.deleteOnExit();

final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName("typescript-axios")
.setInputSpec("src/test/resources/3_0/java/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml")
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));

final ClientOptInput clientOptInput = configurator.toClientOptInput();
final DefaultGenerator generator = new DefaultGenerator();
final List<File> files = generator.opts(clientOptInput).generate();
files.forEach(File::deleteOnExit);

Path file = Paths.get(output + "/api.ts");
String content = Files.readString(file);

assertThat(content).contains(
"export const ChildCatPetTypeEnum = {\n" +
" ChildCat: 'ChildCat',\n" +
"} as const;");
assertThat(content).contains(
"export const OuterEnum = {\n" +
" Placed: 'placed',\n" +
" Approved: 'approved',\n" +
" Delivered: 'delivered',\n" +
"} as const;");
assertThat(content).contains(
"export const TestEnumParametersEnumHeaderStringEnum = {\n" +
" Abc: '_abc',\n" +
" Efg: '-efg',\n" +
" Xyz: '(xyz)',\n" +
"} as const;");
}
}
14 changes: 7 additions & 7 deletions samples/client/echo_api/typescript-axios/build/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export interface DefaultValue {
export const DefaultValueArrayStringEnumDefaultEnum = {
Success: 'success',
Failure: 'failure',
Unclassified: 'unclassified'
Unclassified: 'unclassified',
} as const;

export type DefaultValueArrayStringEnumDefaultEnum = typeof DefaultValueArrayStringEnumDefaultEnum[keyof typeof DefaultValueArrayStringEnumDefaultEnum];
Expand All @@ -89,7 +89,7 @@ export interface Pet {
export const PetStatusEnum = {
Available: 'available',
Pending: 'pending',
Sold: 'sold'
Sold: 'sold',
} as const;

export type PetStatusEnum = typeof PetStatusEnum[keyof typeof PetStatusEnum];
Expand All @@ -105,7 +105,7 @@ export interface Query {
export const QueryOutcomesEnum = {
Success: 'SUCCESS',
Failure: 'FAILURE',
Skipped: 'SKIPPED'
Skipped: 'SKIPPED',
} as const;

export type QueryOutcomesEnum = typeof QueryOutcomesEnum[keyof typeof QueryOutcomesEnum];
Expand All @@ -114,7 +114,7 @@ export type QueryOutcomesEnum = typeof QueryOutcomesEnum[keyof typeof QueryOutco
export const StringEnumRef = {
Success: 'success',
Failure: 'failure',
Unclassified: 'unclassified'
Unclassified: 'unclassified',
} as const;

export type StringEnumRef = typeof StringEnumRef[keyof typeof StringEnumRef];
Expand Down Expand Up @@ -1454,7 +1454,7 @@ export class HeaderApi extends BaseAPI {
export const TestHeaderIntegerBooleanStringEnumsEnumNonrefStringHeaderEnum = {
Success: 'success',
Failure: 'failure',
Unclassified: 'unclassified'
Unclassified: 'unclassified',
} as const;
export type TestHeaderIntegerBooleanStringEnumsEnumNonrefStringHeaderEnum = typeof TestHeaderIntegerBooleanStringEnumsEnumNonrefStringHeaderEnum[keyof typeof TestHeaderIntegerBooleanStringEnumsEnumNonrefStringHeaderEnum];

Expand Down Expand Up @@ -1582,7 +1582,7 @@ export class PathApi extends BaseAPI {
export const TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPathEnumNonrefStringPathEnum = {
Success: 'success',
Failure: 'failure',
Unclassified: 'unclassified'
Unclassified: 'unclassified',
} as const;
export type TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPathEnumNonrefStringPathEnum = typeof TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPathEnumNonrefStringPathEnum[keyof typeof TestsPathStringPathStringIntegerPathIntegerEnumNonrefStringPathEnumRefStringPathEnumNonrefStringPathEnum];

Expand Down Expand Up @@ -2442,7 +2442,7 @@ export class QueryApi extends BaseAPI {
export const TestEnumRefStringEnumNonrefStringQueryEnum = {
Success: 'success',
Failure: 'failure',
Unclassified: 'unclassified'
Unclassified: 'unclassified',
} as const;
export type TestEnumRefStringEnumNonrefStringQueryEnum = typeof TestEnumRefStringEnumNonrefStringQueryEnum[keyof typeof TestEnumRefStringEnumNonrefStringQueryEnum];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export const DogBreedEnum = {
Dingo: 'Dingo',
Husky: 'Husky',
Retriever: 'Retriever',
Shepherd: 'Shepherd'
Shepherd: 'Shepherd',
} as const;

export type DogBreedEnum = typeof DogBreedEnum[keyof typeof DogBreedEnum];
Expand All @@ -58,7 +58,7 @@ export interface PetByType {

export const PetByTypePetTypeEnum = {
Cat: 'Cat',
Dog: 'Dog'
Dog: 'Dog',
} as const;

export type PetByTypePetTypeEnum = typeof PetByTypePetTypeEnum[keyof typeof PetByTypePetTypeEnum];
Expand All @@ -72,7 +72,7 @@ export interface PetsFilteredPatchRequest {

export const PetsFilteredPatchRequestPetTypeEnum = {
Cat: 'Cat',
Dog: 'Dog'
Dog: 'Dog',
} as const;

export type PetsFilteredPatchRequestPetTypeEnum = typeof PetsFilteredPatchRequestPetTypeEnum[keyof typeof PetsFilteredPatchRequestPetTypeEnum];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export interface Order {
export const OrderStatusEnum = {
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
Delivered: 'delivered',
} as const;

export type OrderStatusEnum = typeof OrderStatusEnum[keyof typeof OrderStatusEnum];
Expand All @@ -79,7 +79,7 @@ export interface Pet {
export const PetStatusEnum = {
Available: 'available',
Pending: 'pending',
Sold: 'sold'
Sold: 'sold',
} as const;

export type PetStatusEnum = typeof PetStatusEnum[keyof typeof PetStatusEnum];
Expand Down Expand Up @@ -770,7 +770,7 @@ export class PetApi extends BaseAPI {
export const FindPetsByStatusStatusEnum = {
Available: 'available',
Pending: 'pending',
Sold: 'sold'
Sold: 'sold',
} as const;
export type FindPetsByStatusStatusEnum = typeof FindPetsByStatusStatusEnum[keyof typeof FindPetsByStatusStatusEnum];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export interface Order {
export const OrderStatusEnum = {
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
Delivered: 'delivered',
} as const;

export type OrderStatusEnum = typeof OrderStatusEnum[keyof typeof OrderStatusEnum];
Expand All @@ -79,7 +79,7 @@ export interface Pet {
export const PetStatusEnum = {
Available: 'available',
Pending: 'pending',
Sold: 'sold'
Sold: 'sold',
} as const;

export type PetStatusEnum = typeof PetStatusEnum[keyof typeof PetStatusEnum];
Expand Down Expand Up @@ -770,7 +770,7 @@ export class PetApi extends BaseAPI {
export const FindPetsByStatusStatusEnum = {
Available: 'available',
Pending: 'pending',
Sold: 'sold'
Sold: 'sold',
} as const;
export type FindPetsByStatusStatusEnum = typeof FindPetsByStatusStatusEnum[keyof typeof FindPetsByStatusStatusEnum];

Expand Down
Loading
Loading