-
Notifications
You must be signed in to change notification settings - Fork 6k
Swagger Codegen migration from Mustache and Handlebars templates.
Mustaches and Handlebars use a similar syntax, the implementing changes have been small in order to migrate to handlebars, but there are some details that must be kept in mind.
Here is a list of the main changes done on .mustache
files in order to support handlebars:
-
To avoid blank spaces between elements we need to use
~
character. This sample{{#elem}} ... {{/elem}}
should be used this way:{{#elem}} ... {{/elem~}}
to avoid an extra line on the result. -
For
{{#-last}}
element we should replace the-
character with@
. We'll need to use:{{#@last}}
The main change that affects templates is that is*, isNot*, has*, hasNot*
properties have been removed from codegen pojo (CodegenModel, CodegenProperty, etc) and replaced for extensions. So one option to access those values is: {{#vendorExtension.x-is-enum}}
. However we've created handlebar helpers in order to keep using this in a similar way, the sample before can also be expressed this way: {{#is this 'enum'}}
, where this
references to a codegen pojo in the template.
So these are basically the changes implemented in order to reuse a mustache template in handlebars. I understand that there are more considerations and features in handlebars that can be described, but till now these have been the required changes for migration.
would suggest when compiling to use flag to ignore tests. The tests requires extra dependencies and the compilation might fail due to that.