Skip to content

Commit e1cdaf6

Browse files
authored
Merge branch 'OpenAPITools:master' into master
2 parents 8079c17 + c761f11 commit e1cdaf6

35 files changed

Lines changed: 737 additions & 775 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -454,29 +454,6 @@ public String escapeQuotationMark(String input) {
454454
return input.replace("\"", "\\\"");
455455
}
456456

457-
protected String escapeRegex(String pattern) {
458-
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
459-
pattern = pattern.replaceAll("^/", "");
460-
pattern = pattern.replaceAll("/$", "");
461-
return pattern;
462-
}
463-
464-
/**
465-
* Convert OpenAPI Parameter object to Codegen Parameter object
466-
*
467-
* @param imports set of imports for library/package/module
468-
* @param param OpenAPI parameter object
469-
* @return Codegen Parameter object
470-
*/
471-
@Override
472-
public CodegenParameter fromParameter(Parameter param, Set<String> imports) {
473-
CodegenParameter parameter = super.fromParameter(param, imports);
474-
if (parameter.pattern != null) {
475-
parameter.pattern = escapeRegex(parameter.pattern);
476-
}
477-
return parameter;
478-
}
479-
480457
/**
481458
* Convert OAS Property schema to Codegen Property object.
482459
* <p>
@@ -498,9 +475,6 @@ public CodegenProperty fromProperty(String name, Schema schema, boolean required
498475
if (needsVarEscape(property.name)) {
499476
property.name = "var\"" + property.name + "\"";
500477
}
501-
if (property.pattern != null) {
502-
property.pattern = escapeRegex(property.pattern);
503-
}
504478
return property;
505479
}
506480

@@ -531,6 +505,19 @@ private void changeParamNames(List<CodegenParameter> paramsList, HashSet<String>
531505
}
532506
}
533507

508+
@Override
509+
public String toRegularExpression(String pattern) {
510+
if (pattern == null) {
511+
return pattern;
512+
}
513+
514+
pattern = escapeText(pattern);
515+
// escapeText unnecessarily escapes `\` such that `\.` in the regex ends up as `\\.` for example.
516+
// we need to restore it back by converting `\\` to `\`
517+
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
518+
return pattern;
519+
}
520+
534521
/**
535522
* Convert OAS Operation object to Codegen Operation object
536523
*

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,9 @@ public void processOpts() {
413413
setParamNaming((String) additionalProperties.get(CodegenConstants.PARAM_NAMING));
414414
}
415415

416-
setSupportsES6(convertPropertyToBooleanAndWriteBack(CodegenConstants.SUPPORTS_ES6));
416+
if (additionalProperties.containsKey(CodegenConstants.SUPPORTS_ES6)) {
417+
setSupportsES6(convertPropertyToBooleanAndWriteBack(CodegenConstants.SUPPORTS_ES6));
418+
}
417419

418420
if (additionalProperties.containsKey(NULL_SAFE_ADDITIONAL_PROPS)) {
419421
setNullSafeAdditionalProps(Boolean.valueOf(additionalProperties.get(NULL_SAFE_ADDITIONAL_PROPS).toString()));

modules/openapi-generator/src/main/resources/typescript/configuration.mustache

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,16 @@ import { BaseServerConfiguration, server1 } from "./servers{{importFileExtension
1212
import { configureAuthMethods, AuthMethods, AuthMethodsConfiguration } from "./auth/auth{{importFileExtension}}";
1313

1414
export interface Configuration<M = Middleware> {
15-
readonly baseServer: BaseServerConfiguration;
16-
readonly httpApi: HttpLibrary;
17-
readonly middleware: M[];
18-
readonly authMethods: AuthMethods;
15+
readonly baseServer: BaseServerConfiguration;
16+
readonly httpApi: HttpLibrary;
17+
readonly middleware: M[];
18+
readonly authMethods: AuthMethods;
1919
}
2020

2121
// Additional option specific to middleware merge strategy
2222
export interface MiddlewareMergeOptions {
23-
// default is `'replace'` for backwards compatibility
24-
middlewareMergeStrategy?: 'replace' | 'append' | 'prepend';
23+
// default is `"replace"` for backwards compatibility
24+
middlewareMergeStrategy?: "replace" | "append" | "prepend";
2525
}
2626

2727
// Unify configuration options using Partial plus extra merge strategy
@@ -105,43 +105,36 @@ export function createConfiguration(conf: ConfigurationParameters = {}): Configu
105105
*/
106106
{{#useInversify}}
107107
export function mergeConfiguration(conf: Configuration, options?: Configuration): Configuration {
108-
if (options) {
109-
conf = options;
110-
}
111-
return conf;
108+
return options || conf;
112109
}
113110
{{/useInversify}}
114111
{{^useInversify}}
115112
export function mergeConfiguration(conf: Configuration, options?: ConfigurationOptions): Configuration {
116-
let allMiddleware: Middleware[] = [];
117-
if (options && options.middleware) {
118-
const middlewareMergeStrategy = options.middlewareMergeStrategy || "replace" // default to replace behavior
119-
// call-time middleware provided
120-
const calltimeMiddleware: Middleware[] = options.middleware;
113+
if (!options) {
114+
return conf;
115+
}
116+
return {
117+
baseServer: options.baseServer || conf.baseServer,
118+
httpApi: options.httpApi || conf.httpApi,
119+
authMethods: options.authMethods || conf.authMethods,
120+
middleware: mergeMiddleware(conf.middleware, options?.middleware, options?.middlewareMergeStrategy),
121+
};
122+
}
121123

122-
switch(middlewareMergeStrategy) {
124+
function mergeMiddleware(staticMiddleware: Middleware[], calltimeMiddleware?: Middleware[], strategy: "append" | "prepend" | "replace" = "replace") {
125+
if (!calltimeMiddleware) {
126+
return staticMiddleware;
127+
}
128+
switch(strategy) {
123129
case "append":
124-
allMiddleware = conf.middleware.concat(calltimeMiddleware);
125-
break;
130+
return staticMiddleware.concat(calltimeMiddleware);
126131
case "prepend":
127-
allMiddleware = calltimeMiddleware.concat(conf.middleware)
128-
break;
132+
return calltimeMiddleware.concat(staticMiddleware)
129133
case "replace":
130-
allMiddleware = calltimeMiddleware
131-
break;
134+
return calltimeMiddleware
132135
default:
133-
throw new Error(`unrecognized middleware merge strategy '${middlewareMergeStrategy}'`);
134-
}
135-
}
136-
if (options) {
137-
conf = {
138-
baseServer: options.baseServer || conf.baseServer,
139-
httpApi: options.httpApi || conf.httpApi,
140-
authMethods: options.authMethods || conf.authMethods,
141-
middleware: allMiddleware || conf.middleware
142-
};
136+
throw new Error(`Unrecognized middleware merge strategy '${strategy}'`)
143137
}
144-
return conf;
145138
}
146139
{{/useInversify}}
147140

modules/openapi-generator/src/main/resources/typescript/types/ObservableAPI.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,14 @@ export class Observable{{classname}} {
6565
public {{nickname}}WithHttpInfo({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}_options?: Configuration{{^useInversify}}Options{{/useInversify}}): Observable<HttpInfo<{{{returnType}}}{{^returnType}}void{{/returnType}}>> {
6666
const _config = mergeConfiguration(this.configuration, _options);
6767
68-
const requestContextPromise = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}{{#useInversify}}_options{{/useInversify}}{{^useInversify}}_config{{/useInversify}});
68+
const requestContextPromise = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}_config);
6969
// build promise chain
7070
let middlewarePreObservable = from<RequestContext>(requestContextPromise);
7171
for (const middleware of _config.middleware) {
7272
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
7373
}
7474

75-
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
75+
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => _config.httpApi.send(ctx))).
7676
pipe(mergeMap((response: ResponseContext) => {
7777
let middlewarePostObservable = of(response);
7878
for (const middleware of _config.middleware.reverse()) {

samples/client/echo_api/typescript/build/configuration.ts

Lines changed: 25 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)