mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-28 19:50:49 +00:00
[typescript-angular] Add fileNaming
configuration property (#767)
* resolve #727 * remove commented code
This commit is contained in:
parent
66022a1f22
commit
7a18a1a7b6
@ -1026,6 +1026,7 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
|||||||
}
|
}
|
||||||
if (mapping != null) {
|
if (mapping != null) {
|
||||||
im.put("import", mapping);
|
im.put("import", mapping);
|
||||||
|
im.put("classname", nextImport);
|
||||||
if (!imports.contains(im)) { // avoid duplicates
|
if (!imports.contains(im)) { // avoid duplicates
|
||||||
imports.add(im);
|
imports.add(im);
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
public static final String SERVICE_FILE_SUFFIX = "serviceFileSuffix";
|
public static final String SERVICE_FILE_SUFFIX = "serviceFileSuffix";
|
||||||
public static final String MODEL_SUFFIX = "modelSuffix";
|
public static final String MODEL_SUFFIX = "modelSuffix";
|
||||||
public static final String MODEL_FILE_SUFFIX = "modelFileSuffix";
|
public static final String MODEL_FILE_SUFFIX = "modelFileSuffix";
|
||||||
|
public static final String FILE_NAMING = "fileNaming";
|
||||||
|
|
||||||
protected String npmName = null;
|
protected String npmName = null;
|
||||||
protected String npmVersion = "1.0.0";
|
protected String npmVersion = "1.0.0";
|
||||||
@ -58,6 +59,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
protected String serviceFileSuffix = ".service";
|
protected String serviceFileSuffix = ".service";
|
||||||
protected String modelSuffix = "";
|
protected String modelSuffix = "";
|
||||||
protected String modelFileSuffix = "";
|
protected String modelFileSuffix = "";
|
||||||
|
protected String fileNaming = "camelCase";
|
||||||
|
|
||||||
private boolean taggedUnions = false;
|
private boolean taggedUnions = false;
|
||||||
|
|
||||||
@ -95,6 +97,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
this.cliOptions.add(new CliOption(SERVICE_FILE_SUFFIX, "The suffix of the file of the generated service (service<suffix>.ts). Default is '.service'."));
|
this.cliOptions.add(new CliOption(SERVICE_FILE_SUFFIX, "The suffix of the file of the generated service (service<suffix>.ts). Default is '.service'."));
|
||||||
this.cliOptions.add(new CliOption(MODEL_SUFFIX, "The suffix of the generated model. Default is ''."));
|
this.cliOptions.add(new CliOption(MODEL_SUFFIX, "The suffix of the generated model. Default is ''."));
|
||||||
this.cliOptions.add(new CliOption(MODEL_FILE_SUFFIX, "The suffix of the file of the generated model (model<suffix>.ts). Default is ''."));
|
this.cliOptions.add(new CliOption(MODEL_FILE_SUFFIX, "The suffix of the file of the generated model (model<suffix>.ts). Default is ''."));
|
||||||
|
this.cliOptions.add(new CliOption(FILE_NAMING, "Naming convention for the output files: 'camelCase', 'kebab-case'. Default is 'camelCase'."));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -189,6 +192,9 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
modelFileSuffix = additionalProperties.get(MODEL_FILE_SUFFIX).toString();
|
modelFileSuffix = additionalProperties.get(MODEL_FILE_SUFFIX).toString();
|
||||||
validateFileSuffixArgument("Model", modelFileSuffix);
|
validateFileSuffixArgument("Model", modelFileSuffix);
|
||||||
}
|
}
|
||||||
|
if (additionalProperties.containsKey(FILE_NAMING)) {
|
||||||
|
this.setFileNaming(additionalProperties.get(FILE_NAMING).toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addNpmPackageGeneration(SemVer ngVersion) {
|
private void addNpmPackageGeneration(SemVer ngVersion) {
|
||||||
@ -375,7 +381,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
List<Map<String, Object>> imports = (List<Map<String, Object>>) operations.get("imports");
|
List<Map<String, Object>> imports = (List<Map<String, Object>>) operations.get("imports");
|
||||||
for (Map<String, Object> im : imports) {
|
for (Map<String, Object> im : imports) {
|
||||||
im.put("filename", im.get("import"));
|
im.put("filename", im.get("import"));
|
||||||
im.put("classname", getModelnameFromModelFilename(im.get("filename").toString()));
|
im.put("classname", im.get("classname"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return operations;
|
return operations;
|
||||||
@ -456,7 +462,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
if (name.length() == 0) {
|
if (name.length() == 0) {
|
||||||
return "default.service";
|
return "default.service";
|
||||||
}
|
}
|
||||||
return org.openapitools.codegen.utils.StringUtils.camelize(removeModelSuffixIfNecessary(name), true) + serviceFileSuffix;
|
return this.convertUsingFileNamingConvention(name) + serviceFileSuffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -466,8 +472,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toModelFilename(String name) {
|
public String toModelFilename(String name) {
|
||||||
String modelName = toModelName(name);
|
return this.convertUsingFileNamingConvention(name) + modelFileSuffix;
|
||||||
return org.openapitools.codegen.utils.StringUtils.camelize(removeModelSuffixIfNecessary(modelName), true) + modelFileSuffix;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -558,4 +563,32 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the file naming type.
|
||||||
|
* @param fileNaming the file naming to use
|
||||||
|
*/
|
||||||
|
private void setFileNaming(String fileNaming) {
|
||||||
|
if ("camelCase".equals(fileNaming) || "kebab-case".equals(fileNaming)) {
|
||||||
|
this.fileNaming = fileNaming;
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("Invalid file naming '" +
|
||||||
|
fileNaming + "'. Must be 'camelCase' or 'kebab-case'");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the original name according to the current <tt>fileNaming</tt> strategy.
|
||||||
|
* @param originalName the original name to transform
|
||||||
|
* @return the transformed name
|
||||||
|
*/
|
||||||
|
private String convertUsingFileNamingConvention(String originalName) {
|
||||||
|
String name = this.removeModelSuffixIfNecessary(originalName);
|
||||||
|
if ("kebab-case".equals(fileNaming)) {
|
||||||
|
name = dashize(underscore(name));
|
||||||
|
} else {
|
||||||
|
name = camelize(name, true);
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ public class TypeScriptAngularClientOptionsProvider implements OptionsProvider {
|
|||||||
public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";
|
public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";
|
||||||
public static final String NG_VERSION = "2";
|
public static final String NG_VERSION = "2";
|
||||||
public static final String PREPEND_FORM_OR_BODY_PARAMETERS_VALUE = "true";
|
public static final String PREPEND_FORM_OR_BODY_PARAMETERS_VALUE = "true";
|
||||||
|
public static final String FILE_NAMING_VALUE = "camelCase";
|
||||||
public static String SERVICE_SUFFIX = "Service";
|
public static String SERVICE_SUFFIX = "Service";
|
||||||
public static String SERVICE_FILE_SUFFIX = ".service";
|
public static String SERVICE_FILE_SUFFIX = ".service";
|
||||||
public static String MODEL_SUFFIX = "";
|
public static String MODEL_SUFFIX = "";
|
||||||
@ -66,6 +67,7 @@ public class TypeScriptAngularClientOptionsProvider implements OptionsProvider {
|
|||||||
.put(TypeScriptAngularClientCodegen.MODEL_FILE_SUFFIX, MODEL_FILE_SUFFIX)
|
.put(TypeScriptAngularClientCodegen.MODEL_FILE_SUFFIX, MODEL_FILE_SUFFIX)
|
||||||
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
|
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
|
||||||
.put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, PREPEND_FORM_OR_BODY_PARAMETERS_VALUE)
|
.put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, PREPEND_FORM_OR_BODY_PARAMETERS_VALUE)
|
||||||
|
.put(TypeScriptAngularClientCodegen.FILE_NAMING, FILE_NAMING_VALUE)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user