From eb047ba0c7c0c0bf936022207b9af120ce4433c4 Mon Sep 17 00:00:00 2001 From: Hugo Mercado Date: Fri, 10 Nov 2023 05:10:09 -0500 Subject: [PATCH] create option for override keyword --- .../typescript/TypeScriptAngularClientCodegen.java | 7 +++++++ .../handlebars/typescript-angular/encoder.mustache | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/swagger/codegen/v3/generators/typescript/TypeScriptAngularClientCodegen.java b/src/main/java/io/swagger/codegen/v3/generators/typescript/TypeScriptAngularClientCodegen.java index 3db1430c94..d41e86ae26 100644 --- a/src/main/java/io/swagger/codegen/v3/generators/typescript/TypeScriptAngularClientCodegen.java +++ b/src/main/java/io/swagger/codegen/v3/generators/typescript/TypeScriptAngularClientCodegen.java @@ -46,6 +46,7 @@ public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCode public static final String NG_PACKAGR = "useNgPackagr"; public static final String PROVIDED_IN_ROOT ="providedInRoot"; public static final String KEBAB_FILE_NAME ="kebab-file-name"; + public static final String USE_OVERRIDE ="useOverride"; protected String npmName = null; protected String npmVersion = "1.0.0"; @@ -63,6 +64,7 @@ public TypeScriptAngularClientCodegen() { this.cliOptions.add(new CliOption(WITH_INTERFACES, "Setting this property to true will generate interfaces next to the default class implementations.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); this.cliOptions.add(new CliOption(NG_VERSION, "The version of Angular. Default is '4.3'")); this.cliOptions.add(new CliOption(PROVIDED_IN_ROOT, "Use this property to provide Injectables in root (it is only valid in angular version greater or equal to 6.0.0).", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); + this.cliOptions.add(new CliOption(USE_OVERRIDE, "Use this property to place `override` keyword in encoder methods.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); } @Override @@ -187,6 +189,11 @@ public void processOpts() { } } + if (additionalProperties.containsKey(USE_OVERRIDE)) { + final boolean useOverride = Boolean.parseBoolean(String.valueOf(additionalProperties.get(USE_OVERRIDE))); + additionalProperties.put(USE_OVERRIDE, useOverride); + } + kebabFileNaming = Boolean.parseBoolean(String.valueOf(additionalProperties.get(KEBAB_FILE_NAME))); } diff --git a/src/main/resources/handlebars/typescript-angular/encoder.mustache b/src/main/resources/handlebars/typescript-angular/encoder.mustache index d69a401035..f2676bb66a 100644 --- a/src/main/resources/handlebars/typescript-angular/encoder.mustache +++ b/src/main/resources/handlebars/typescript-angular/encoder.mustache @@ -12,11 +12,11 @@ * See: https://github.com/angular/angular/issues/11058#issuecomment-247367318 */ export class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec { - override encodeKey(k: string): string { + {{#useOverride}}override {{/useOverride}}encodeKey(k: string): string { k = super.encodeKey(k); return k.replace(/\+/gi, '%2B'); } - override encodeValue(v: string): string { + {{#useOverride}}override {{/useOverride}}encodeValue(v: string): string { v = super.encodeValue(v); return v.replace(/\+/gi, '%2B'); } @@ -29,11 +29,11 @@ export class CustomHttpUrlEncodingCodec extends HttpUrlEncodingCodec { * See: https://github.com/angular/angular/issues/11058#issuecomment-247367318 */ export class CustomQueryEncoderHelper extends QueryEncoder { - override encodeKey(k: string): string { + {{#useOverride}}override {{/useOverride}}encodeKey(k: string): string { k = super.encodeKey(k); return k.replace(/\+/gi, '%2B'); } - override encodeValue(v: string): string { + {{#useOverride}}override {{/useOverride}}encodeValue(v: string): string { v = super.encodeValue(v); return v.replace(/\+/gi, '%2B'); }