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 @@ -13,18 +13,18 @@ export enum {{classname}} {
}
{{/stringEnums}}
{{^stringEnums}}
export type {{classname}} = {{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}} | {{/-last}}{{/enumVars}}{{/allowableValues}};

export const {{classname}} = {
{{#allowableValues}}
{{#enumVars}}
{{#enumDescription}}

/**
* {{.}}
*/{{/enumDescription}}
{{name}}: {{{value}}} as {{classname}}{{^-last}},{{/-last}}
*/
{{/enumDescription}}
{{name}}: {{{value}}}{{^-last}},{{/-last}}
{{/enumVars}}
{{/allowableValues}}
};
} as const;
export type {{classname}} = typeof {{classname}}[keyof typeof {{classname}}];
{{/stringEnums}}
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ export enum {{classname}}{{enumName}} {
};
{{/stringEnums}}
{{^stringEnums}}
export type {{enumName}} = {{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}} | {{/-last}}{{/enumVars}}{{/allowableValues}};
export const {{enumName}} = {
{{#allowableValues}}
{{#enumVars}}
{{name}}: {{{value}}} as {{enumName}}{{^-last}},{{/-last}}
{{name}}: {{{value}}}{{^-last}},{{/-last}}
{{/enumVars}}
{{/allowableValues}}
};
} as const;
export type {{enumName}} = typeof {{enumName}}[keyof typeof {{enumName}}];
{{/stringEnums}}
{{/isEnum}}
{{/vars}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -439,4 +439,29 @@ public void testBasePath() throws IOException {
final String fileContents = Files.readString(Paths.get(output + "/api.base.service.ts"));
assertThat(fileContents).containsOnlyOnce("basePath = '/relative/url'");
}

@Test
public void testEnumAsConst() throws IOException {
// GIVEN
final String specPath = "src/test/resources/3_0/enum.yaml";

File output = Files.createTempDirectory("test").toFile();
output.deleteOnExit();

// WHEN
final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName("typescript-angular")
.setInputSpec(specPath)
.setOutputDir(output.getAbsolutePath().replace("\\", "/"));

final ClientOptInput clientOptInput = configurator.toClientOptInput();

Generator generator = new DefaultGenerator();
generator.opts(clientOptInput).generate();

// THEN
final String fileContents = Files.readString(Paths.get(output + "/model/type.ts"));
assertThat(fileContents).containsOnlyOnce("} as const;");
assertThat(fileContents).doesNotContain(" as Type");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export interface Order {
complete?: boolean;
}
export namespace Order {
export type StatusEnum = 'placed' | 'approved' | 'delivered';
export const StatusEnum = {
Placed: 'placed' as StatusEnum,
Approved: 'approved' as StatusEnum,
Delivered: 'delivered' as StatusEnum
};
Placed: 'placed',
Approved: 'approved',
Delivered: 'delivered'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ export interface Pet {
status?: Pet.StatusEnum;
}
export namespace Pet {
export type StatusEnum = 'available' | 'pending' | 'sold';
export const StatusEnum = {
Available: 'available' as StatusEnum,
Pending: 'pending' as StatusEnum,
Sold: 'sold' as StatusEnum
};
Available: 'available',
Pending: 'pending',
Sold: 'sold'
} as const;
export type StatusEnum = typeof StatusEnum[keyof typeof StatusEnum];
}


Loading
Loading