@goast/kotlin 0.6.0-beta.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +45 -45
- package/assets/client/okhttp3/ApiAbstractions.kt +30 -30
- package/assets/client/okhttp3/ApiClient.kt +252 -252
- package/assets/client/okhttp3/ApiResponse.kt +43 -43
- package/assets/client/okhttp3/Errors.kt +21 -21
- package/assets/client/okhttp3/PartConfig.kt +11 -11
- package/assets/client/okhttp3/RequestConfig.kt +18 -18
- package/assets/client/okhttp3/RequestMethod.kt +8 -8
- package/assets/client/okhttp3/ResponseExtensions.kt +24 -24
- package/assets/client/spring-reactive-web-clients/ApiRequestFile.kt +33 -33
- package/esm/src/ast/references/jackson.d.ts +8 -0
- package/esm/src/ast/references/jackson.d.ts.map +1 -1
- package/esm/src/ast/references/jackson.js +8 -0
- package/esm/src/generators/file-generator.d.ts +21 -1
- package/esm/src/generators/file-generator.d.ts.map +1 -1
- package/esm/src/generators/file-generator.js +41 -2
- package/esm/src/generators/models/args.d.ts +5 -0
- package/esm/src/generators/models/args.d.ts.map +1 -1
- package/esm/src/generators/models/model-generator.d.ts +23 -0
- package/esm/src/generators/models/model-generator.d.ts.map +1 -1
- package/esm/src/generators/models/model-generator.js +130 -13
- package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts +9 -0
- package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts.map +1 -1
- package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +59 -41
- package/esm/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts.map +1 -1
- package/esm/src/generators/services/okhttp3-clients/okhttp3-clients-generator.js +11 -9
- package/esm/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
- package/esm/src/generators/services/spring-controllers/spring-controller-generator.js +53 -35
- package/esm/src/generators/services/spring-reactive-web-clients/args.d.ts +3 -0
- package/esm/src/generators/services/spring-reactive-web-clients/args.d.ts.map +1 -1
- package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts +7 -0
- package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts.map +1 -1
- package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.js +41 -20
- package/esm/src/import-collection.d.ts.map +1 -1
- package/esm/src/import-collection.js +2 -2
- package/esm/src/utils.d.ts +3 -1
- package/esm/src/utils.d.ts.map +1 -1
- package/esm/src/utils.js +7 -0
- package/package.json +2 -2
- package/script/src/ast/references/jackson.d.ts +8 -0
- package/script/src/ast/references/jackson.d.ts.map +1 -1
- package/script/src/ast/references/jackson.js +9 -1
- package/script/src/generators/file-generator.d.ts +21 -1
- package/script/src/generators/file-generator.d.ts.map +1 -1
- package/script/src/generators/file-generator.js +41 -2
- package/script/src/generators/models/args.d.ts +5 -0
- package/script/src/generators/models/args.d.ts.map +1 -1
- package/script/src/generators/models/model-generator.d.ts +23 -0
- package/script/src/generators/models/model-generator.d.ts.map +1 -1
- package/script/src/generators/models/model-generator.js +129 -12
- package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts +9 -0
- package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts.map +1 -1
- package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +58 -40
- package/script/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts.map +1 -1
- package/script/src/generators/services/okhttp3-clients/okhttp3-clients-generator.js +11 -9
- package/script/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +1 -1
- package/script/src/generators/services/spring-controllers/spring-controller-generator.js +52 -34
- package/script/src/generators/services/spring-reactive-web-clients/args.d.ts +3 -0
- package/script/src/generators/services/spring-reactive-web-clients/args.d.ts.map +1 -1
- package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts +7 -0
- package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts.map +1 -1
- package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.js +40 -19
- package/script/src/import-collection.d.ts.map +1 -1
- package/script/src/import-collection.js +1 -1
- package/script/src/utils.d.ts +3 -1
- package/script/src/utils.d.ts.map +1 -1
- package/script/src/utils.js +9 -0
- package/src/mod.ts +8 -0
- package/src/src/assets.ts +9 -0
- package/src/src/ast/_index.ts +66 -0
- package/src/src/ast/common.ts +1 -0
- package/src/src/ast/index.ts +1 -0
- package/src/src/ast/node.ts +10 -0
- package/src/src/ast/nodes/annotation.ts +79 -0
- package/src/src/ast/nodes/argument.ts +62 -0
- package/src/src/ast/nodes/call.ts +75 -0
- package/src/src/ast/nodes/class.ts +178 -0
- package/src/src/ast/nodes/collection-literal.ts +49 -0
- package/src/src/ast/nodes/constructor.ts +126 -0
- package/src/src/ast/nodes/doc-tag.ts +138 -0
- package/src/src/ast/nodes/doc.ts +111 -0
- package/src/src/ast/nodes/enum-value.ts +100 -0
- package/src/src/ast/nodes/enum.ts +163 -0
- package/src/src/ast/nodes/function.ts +178 -0
- package/src/src/ast/nodes/generic-parameter.ts +54 -0
- package/src/src/ast/nodes/init-block.ts +38 -0
- package/src/src/ast/nodes/interface.ts +133 -0
- package/src/src/ast/nodes/lambda-type.ts +73 -0
- package/src/src/ast/nodes/lambda.ts +74 -0
- package/src/src/ast/nodes/object.ts +102 -0
- package/src/src/ast/nodes/parameter.ts +118 -0
- package/src/src/ast/nodes/property.ts +225 -0
- package/src/src/ast/nodes/reference.ts +178 -0
- package/src/src/ast/nodes/string.ts +114 -0
- package/src/src/ast/nodes/types.ts +23 -0
- package/src/src/ast/references/index.ts +10 -0
- package/src/src/ast/references/jackson.ts +70 -0
- package/src/src/ast/references/jakarta.ts +14 -0
- package/src/src/ast/references/java.ts +27 -0
- package/src/src/ast/references/kotlin.ts +41 -0
- package/src/src/ast/references/kotlinx.ts +14 -0
- package/src/src/ast/references/okhttp3.ts +5 -0
- package/src/src/ast/references/reactor.ts +5 -0
- package/src/src/ast/references/spring-reactive.ts +37 -0
- package/src/src/ast/references/spring.ts +86 -0
- package/src/src/ast/references/swagger.ts +23 -0
- package/src/src/ast/utils/get-kotlin-builder-options.ts +19 -0
- package/src/src/ast/utils/to-kt-node.ts +31 -0
- package/src/src/ast/utils/write-kt-annotations.ts +15 -0
- package/src/src/ast/utils/write-kt-arguments.ts +45 -0
- package/src/src/ast/utils/write-kt-enum-values.ts +27 -0
- package/src/src/ast/utils/write-kt-generic-parameters.ts +12 -0
- package/src/src/ast/utils/write-kt-members.ts +25 -0
- package/src/src/ast/utils/write-kt-node.ts +37 -0
- package/src/src/ast/utils/write-kt-parameters.ts +25 -0
- package/src/src/common-results.ts +4 -0
- package/src/src/config.ts +61 -0
- package/src/src/file-builder.ts +112 -0
- package/src/src/generators/file-generator.ts +71 -0
- package/src/src/generators/index.ts +5 -0
- package/src/src/generators/models/args.ts +142 -0
- package/src/src/generators/models/index.ts +4 -0
- package/src/src/generators/models/model-generator.ts +850 -0
- package/src/src/generators/models/models-generator.ts +65 -0
- package/src/src/generators/models/models.ts +95 -0
- package/src/src/generators/services/okhttp3-clients/args.ts +90 -0
- package/src/src/generators/services/okhttp3-clients/index.ts +4 -0
- package/src/src/generators/services/okhttp3-clients/models.ts +73 -0
- package/src/src/generators/services/okhttp3-clients/okhttp3-client-generator.ts +639 -0
- package/src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts +190 -0
- package/src/src/generators/services/okhttp3-clients/refs.ts +59 -0
- package/src/src/generators/services/spring-controllers/args.ts +95 -0
- package/src/src/generators/services/spring-controllers/index.ts +4 -0
- package/src/src/generators/services/spring-controllers/models.ts +76 -0
- package/src/src/generators/services/spring-controllers/refs.ts +17 -0
- package/src/src/generators/services/spring-controllers/spring-controller-generator.ts +1129 -0
- package/src/src/generators/services/spring-controllers/spring-controllers-generator.ts +140 -0
- package/src/src/generators/services/spring-reactive-web-clients/args.ts +114 -0
- package/src/src/generators/services/spring-reactive-web-clients/index.ts +4 -0
- package/src/src/generators/services/spring-reactive-web-clients/models.ts +78 -0
- package/src/src/generators/services/spring-reactive-web-clients/refs.ts +11 -0
- package/src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.ts +657 -0
- package/src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.ts +125 -0
- package/src/src/import-collection.ts +98 -0
- package/src/src/types.ts +3 -0
- package/src/src/utils.ts +55 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendValueGroup, builderTemplate as s, createOverwriteProxy, getSourceDisplayName, notNullish, resolveAnyOfAndAllOf, SourceBuilder, toCasing, } from '@goast/core';
|
|
2
2
|
import { kt } from '../../../ast/index.js';
|
|
3
3
|
import { KotlinFileBuilder } from '../../../file-builder.js';
|
|
4
|
-
import { getSourceDocLine, modifyString } from '../../../utils.js';
|
|
4
|
+
import { getArrayItemStringEnumSchema, getSourceDocLine, getStringEnumSchema, modifyString } from '../../../utils.js';
|
|
5
5
|
import { KotlinFileGenerator } from '../../file-generator.js';
|
|
6
6
|
export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
7
7
|
generate(ctx) {
|
|
@@ -20,6 +20,17 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
|
20
20
|
getClientFileContent(ctx, _args) {
|
|
21
21
|
return appendValueGroup([this.getClientClass(ctx, {})]);
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* The `super(…)` arguments, in the base class's own parameter order.
|
|
25
|
+
*
|
|
26
|
+
* The base's order is chosen by `serializer`, at the `@API_CLIENT_PARAMETERS@` placeholder substitution in
|
|
27
|
+
* `okhttp3-clients-generator.ts`, and this list is positional, so the two must be derived from the same
|
|
28
|
+
* flag. Defect 27 was this list being a constant that matched only the `'parameter'` shape while every
|
|
29
|
+
* corpus profile uses the default `'static'`.
|
|
30
|
+
*/
|
|
31
|
+
getClientDelegateArguments(serializerAsParameter) {
|
|
32
|
+
return serializerAsParameter ? ['basePath', 'objectMapper', 'client'] : ['basePath', 'client', 'objectMapper'];
|
|
33
|
+
}
|
|
23
34
|
getClientClass(ctx, _args) {
|
|
24
35
|
const serializerAsParameter = ctx.config.serializer === 'parameter';
|
|
25
36
|
return kt.class(this.getApiClientName(ctx, {}), {
|
|
@@ -44,7 +55,7 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
|
44
55
|
}),
|
|
45
56
|
], null, {
|
|
46
57
|
delegateTarget: 'super',
|
|
47
|
-
delegateArguments:
|
|
58
|
+
delegateArguments: this.getClientDelegateArguments(serializerAsParameter),
|
|
48
59
|
}),
|
|
49
60
|
companionObject: this.getClientCompanionObject(ctx, {}),
|
|
50
61
|
members: [
|
|
@@ -109,31 +120,31 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
|
109
120
|
return appendValueGroup([
|
|
110
121
|
s `val localVarResponse = ${kt.call([toCasing(endpoint.name + '_WithHttpInfo', ctx.config.functionNameCasing)], parameters.map((x) => toCasing(x.name, ctx.config.parameterNameCasing)))}`,
|
|
111
122
|
'',
|
|
112
|
-
s `return when (localVarResponse.responseType) {${s.indent `
|
|
123
|
+
s `return when (localVarResponse.responseType) {${s.indent `
|
|
113
124
|
${ctx.refs.responseType()}.Success -> ${responseSchema === undefined
|
|
114
125
|
? kt.refs.unit()
|
|
115
126
|
: s `(localVarResponse as ${ctx.refs.success(['*'])}).data as ${this.getTypeUsage(ctx, {
|
|
116
127
|
schema: responseSchema,
|
|
117
|
-
})}`}
|
|
118
|
-
${ctx.refs.responseType()}.Informational -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Informational responses.")
|
|
119
|
-
${ctx.refs.responseType()}.Redirection -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Redirection responses.")
|
|
120
|
-
${ctx.refs.responseType()}.ClientError -> {${s.indent `
|
|
121
|
-
val localVarError = localVarResponse as ${ctx.refs.clientError(['*'])}
|
|
122
|
-
throw ${ctx.refs.clientException()}(${s.indent `
|
|
123
|
-
"Client error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
|
|
124
|
-
localVarError.statusCode,
|
|
125
|
-
localVarResponse`}
|
|
126
|
-
)`}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
${ctx.refs.responseType()}.ServerError -> {${s.indent `
|
|
130
|
-
val localVarError = localVarResponse as ${ctx.refs.serverError(['*'])}
|
|
131
|
-
throw ${ctx.refs.serverException()}(${s.indent `
|
|
132
|
-
"Server error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
|
|
133
|
-
localVarError.statusCode,
|
|
134
|
-
localVarResponse`}
|
|
135
|
-
)`}
|
|
136
|
-
}`}
|
|
128
|
+
})}`}
|
|
129
|
+
${ctx.refs.responseType()}.Informational -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Informational responses.")
|
|
130
|
+
${ctx.refs.responseType()}.Redirection -> throw ${kt.refs.java.unsupportedOperationException()}("Client does not support Redirection responses.")
|
|
131
|
+
${ctx.refs.responseType()}.ClientError -> {${s.indent `
|
|
132
|
+
val localVarError = localVarResponse as ${ctx.refs.clientError(['*'])}
|
|
133
|
+
throw ${ctx.refs.clientException()}(${s.indent `
|
|
134
|
+
"Client error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
|
|
135
|
+
localVarError.statusCode,
|
|
136
|
+
localVarResponse`}
|
|
137
|
+
)`}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
${ctx.refs.responseType()}.ServerError -> {${s.indent `
|
|
141
|
+
val localVarError = localVarResponse as ${ctx.refs.serverError(['*'])}
|
|
142
|
+
throw ${ctx.refs.serverException()}(${s.indent `
|
|
143
|
+
"Server error : \${localVarError.statusCode} \${localVarError.message.orEmpty()}",
|
|
144
|
+
localVarError.statusCode,
|
|
145
|
+
localVarResponse`}
|
|
146
|
+
)`}
|
|
147
|
+
}`}
|
|
137
148
|
}`,
|
|
138
149
|
], '\n');
|
|
139
150
|
}
|
|
@@ -212,16 +223,16 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
|
212
223
|
result.values.push(`val localVariableBody = ${bodyParamName}`);
|
|
213
224
|
}
|
|
214
225
|
}
|
|
215
|
-
result.values.push(s `val localVariableQuery: ${ctx.refs.multiValueMap()} = ${kt.call([kt.refs.mutableMapOf([kt.refs.string(), kt.refs.list([kt.refs.string()])])], [])}${queryParameters.length === 0 ? '' : s.indent `
|
|
216
|
-
.apply {${s.indent `
|
|
226
|
+
result.values.push(s `val localVariableQuery: ${ctx.refs.multiValueMap()} = ${kt.call([kt.refs.mutableMapOf([kt.refs.string(), kt.refs.list([kt.refs.string()])])], [])}${queryParameters.length === 0 ? '' : s.indent `
|
|
227
|
+
.apply {${s.indent `
|
|
217
228
|
${appendValueGroup(queryParameters.map((param) => {
|
|
218
229
|
const paramName = toCasing(param.name, ctx.config.parameterNameCasing);
|
|
219
230
|
const toString = this.getParameterToString(ctx, { endpoint, parameter: param });
|
|
220
231
|
const put = s `put(${kt.string(param.name)}, listOf(${paramName}${toString}))`;
|
|
221
|
-
return param.required ? put : s `if (${paramName} != null) {${s.indent `
|
|
222
|
-
${put}`}
|
|
232
|
+
return param.required ? put : s `if (${paramName} != null) {${s.indent `
|
|
233
|
+
${put}`}
|
|
223
234
|
}`;
|
|
224
|
-
}), '\n')}`}
|
|
235
|
+
}), '\n')}`}
|
|
225
236
|
}`}`);
|
|
226
237
|
result.values.push('val localVariableHeaders: MutableMap<String, String> = mutableMapOf()');
|
|
227
238
|
if (((_b = endpoint.requestBody) === null || _b === void 0 ? void 0 : _b.content[0]) !== undefined) {
|
|
@@ -230,8 +241,8 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
|
230
241
|
for (const header of headerParameters) {
|
|
231
242
|
const paramName = toCasing(header.name, ctx.config.parameterNameCasing);
|
|
232
243
|
const toString = this.getParameterToString(ctx, { endpoint, parameter: header });
|
|
233
|
-
result.values.push(s `if (${paramName} != null) {${s.indent `
|
|
234
|
-
localVariableHeaders["${header.name}"] = ${paramName}${toString}`}
|
|
244
|
+
result.values.push(s `if (${paramName} != null) {${s.indent `
|
|
245
|
+
localVariableHeaders["${header.name}"] = ${paramName}${toString}`}
|
|
235
246
|
}`);
|
|
236
247
|
}
|
|
237
248
|
result.values.push(s `return ${kt.call([ctx.refs.requestConfig.infer()], [
|
|
@@ -245,13 +256,14 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
|
245
256
|
return result;
|
|
246
257
|
}
|
|
247
258
|
getParameterToString(ctx, args) {
|
|
248
|
-
var _a
|
|
259
|
+
var _a;
|
|
249
260
|
const { parameter } = args;
|
|
250
261
|
if (((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'array') {
|
|
251
|
-
|
|
262
|
+
const itemEnumSchema = getArrayItemStringEnumSchema(parameter.schema);
|
|
263
|
+
const itemEnumType = itemEnumSchema && this.getSchemaType(ctx, { schema: itemEnumSchema });
|
|
264
|
+
return itemEnumType ? s `.joinToString(",", transform = ${itemEnumType}::value)` : '.joinToString(",")';
|
|
252
265
|
}
|
|
253
|
-
else if ((
|
|
254
|
-
this.getSchemaType(ctx, { schema: parameter.schema })) {
|
|
266
|
+
else if (getStringEnumSchema(parameter.schema) && this.getSchemaType(ctx, { schema: parameter.schema })) {
|
|
255
267
|
return '.value';
|
|
256
268
|
}
|
|
257
269
|
else {
|
|
@@ -289,13 +301,19 @@ export class DefaultKotlinOkHttp3Generator extends KotlinFileGenerator {
|
|
|
289
301
|
: this.getTypeUsage(ctx, { schema: content === null || content === void 0 ? void 0 : content.schema, fallback: kt.refs.unit() });
|
|
290
302
|
}
|
|
291
303
|
getParameterDefaultValue(ctx, args) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
304
|
+
const { schema } = args.parameter;
|
|
305
|
+
if (args.parameter.required) {
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
if (getStringEnumSchema(schema) && (schema === null || schema === void 0 ? void 0 : schema.default)) {
|
|
309
|
+
return s `${this.getTypeUsage(ctx, { schema, nullable: false })}.${this.toEnumValueName(ctx, schema.enum, schema.default)}`;
|
|
310
|
+
}
|
|
311
|
+
const itemEnumSchema = getArrayItemStringEnumSchema(schema);
|
|
312
|
+
if (itemEnumSchema && Array.isArray(schema === null || schema === void 0 ? void 0 : schema.default)) {
|
|
313
|
+
const itemType = this.getTypeUsage(ctx, { schema: itemEnumSchema, nullable: false });
|
|
314
|
+
return kt.call(kt.refs.listOf.infer(), schema.default.map((x) => s `${itemType}.${this.toEnumValueName(ctx, itemEnumSchema.enum, x)}`));
|
|
315
|
+
}
|
|
316
|
+
return kt.toNode(schema === null || schema === void 0 ? void 0 : schema.default);
|
|
299
317
|
}
|
|
300
318
|
getTypeUsage(ctx, args) {
|
|
301
319
|
const { schema, nullable, fallback } = args;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"okhttp3-clients-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EAGf,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,qCAAqC,EAGtC,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAiC,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG3G,KAAK,KAAK,GAAG,kCAAkC,CAAC;AAChD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,aAAa,GAAG,kCAAkC,CAAC;AACxD,KAAK,OAAO,GAAG,oCAAoC,CAAC;AAEpD,qBAAa,6BAA8B,SAAQ,qCAAqC,CACtF,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,OAAO,CACR;IACC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAsC;gBAEnE,uBAAuB,CAAC,EAAE,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;cAKhD,uBAAuB,CAAC,GAAG,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1G,SAAS,CAAC,UAAU,IAAI,MAAM;IAQ9B,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC;IAQzF,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAI1F,SAAS,CAAC,YAAY,CACpB,OAAO,EAAE,uBAAuB,CAAC,4BAA4B,CAAC,EAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,GACnC,OAAO;IAUV,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAc9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAKlC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"okhttp3-clients-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/okhttp3-clients/okhttp3-clients-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EAGf,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,qCAAqC,EAGtC,MAAM,aAAa,CAAC;AAKrB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAEL,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,oCAAoC,EACzC,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACzC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAiC,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAG3G,KAAK,KAAK,GAAG,kCAAkC,CAAC;AAChD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,MAAM,GAAG,mCAAmC,CAAC;AAClD,KAAK,aAAa,GAAG,kCAAkC,CAAC;AACxD,KAAK,OAAO,GAAG,oCAAoC,CAAC;AAEpD,qBAAa,6BAA8B,SAAQ,qCAAqC,CACtF,KAAK,EACL,MAAM,EACN,MAAM,EACN,aAAa,EACb,OAAO,CACR;IACC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAsC;gBAEnE,uBAAuB,CAAC,EAAE,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;cAKhD,uBAAuB,CAAC,GAAG,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1G,SAAS,CAAC,UAAU,IAAI,MAAM;IAQ9B,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC;IAQzF,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAI1F,SAAS,CAAC,YAAY,CACpB,OAAO,EAAE,uBAAuB,CAAC,4BAA4B,CAAC,EAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,GACnC,OAAO;IAUV,SAAS,CAAC,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAc9D,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAKlC,uBAAuB;CAoFtC"}
|
|
@@ -81,6 +81,8 @@ export class KotlinOkHttp3ClientsGenerator extends OpenApiServicesGenerationProv
|
|
|
81
81
|
let fileContent = (await getAssetFileContent(sourcePath))
|
|
82
82
|
.replace(/@PACKAGE_NAME@/g, ctx.infrastructurePackageName);
|
|
83
83
|
if (file === 'ApiClient.kt') {
|
|
84
|
+
// This order is positional and must agree with the delegate call's own argument order —
|
|
85
|
+
// `getClientDelegateArguments` in okhttp3-client-generator.ts is the other side of that agreement.
|
|
84
86
|
fileContent = fileContent.replace(/@API_CLIENT_PARAMETERS@/, ctx.config.serializer === 'parameter'
|
|
85
87
|
? 'val baseUrl: String, val objectMapper: ObjectMapper, val client: Factory = defaultClient'
|
|
86
88
|
: 'val baseUrl: String, val client: Factory = defaultClient, val objectMapper: ObjectMapper = Serializer.jacksonObjectMapper');
|
|
@@ -100,16 +102,16 @@ export class KotlinOkHttp3ClientsGenerator extends OpenApiServicesGenerationProv
|
|
|
100
102
|
const jsonIncludeMember = toCasing(ctx.config.serializerJsonInclude, 'snake');
|
|
101
103
|
const defaultFactory = springBootVersion === 4
|
|
102
104
|
// Jackson 3's ObjectMapper is immutable; configuration moved to the (Kotlin) mapper builder.
|
|
103
|
-
? s `${kt.refs.jackson.jacksonMapperBuilder(springBootVersion)}()${s.indent `
|
|
104
|
-
.findAndAddModules()
|
|
105
|
-
.changeDefaultPropertyInclusion { it.withValueInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}).withContentInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}) }
|
|
106
|
-
.configure(${kt.refs.jackson.
|
|
107
|
-
.configure(${kt.refs.jackson.deserializationFeature(springBootVersion)}.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
|
105
|
+
? s `${kt.refs.jackson.jacksonMapperBuilder(springBootVersion)}()${s.indent `
|
|
106
|
+
.findAndAddModules()
|
|
107
|
+
.changeDefaultPropertyInclusion { it.withValueInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}).withContentInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember}) }
|
|
108
|
+
.configure(${kt.refs.jackson.dateTimeFeature()}.WRITE_DATES_AS_TIMESTAMPS, false)
|
|
109
|
+
.configure(${kt.refs.jackson.deserializationFeature(springBootVersion)}.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
|
108
110
|
.build()`}`
|
|
109
|
-
: s `${kt.refs.jackson.jacksonObjectMapper(springBootVersion)}()${s.indent `
|
|
110
|
-
.findAndRegisterModules()
|
|
111
|
-
.setSerializationInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember})
|
|
112
|
-
.configure(${kt.refs.jackson.serializationFeature(springBootVersion)}.WRITE_DATES_AS_TIMESTAMPS, false)
|
|
111
|
+
: s `${kt.refs.jackson.jacksonObjectMapper(springBootVersion)}()${s.indent `
|
|
112
|
+
.findAndRegisterModules()
|
|
113
|
+
.setSerializationInclusion(${kt.refs.jackson.jsonInclude()}.Include.${jsonIncludeMember})
|
|
114
|
+
.configure(${kt.refs.jackson.serializationFeature(springBootVersion)}.WRITE_DATES_AS_TIMESTAMPS, false)
|
|
113
115
|
.configure(${kt.refs.jackson.deserializationFeature(springBootVersion)}.FAIL_ON_UNKNOWN_PROPERTIES, false)`}`;
|
|
114
116
|
const factory = typeof ctx.config.serializer === 'object'
|
|
115
117
|
? ctx.config.serializer.factory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring-controller-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-controllers/spring-controller-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAIrB,KAAK,YAAY,EAGjB,aAAa,EAEd,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,0CAA0C,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,KAAK,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE/F,KAAK,OAAO,GAAG,6BAA6B,CAAC;AAC7C,KAAK,MAAM,GAAG,4BAA4B,CAAC;AAC3C,KAAK,OAAO,GAAG,iBAAiB,CAAC;AAIjC,MAAM,WAAW,+BAA+B,CAC9C,OAAO,SAAS,MAAM,GAAG,MAAM;IAE/B,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,qBAAa,sCAAuC,SAAQ,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAC7F,YAAW,+BAA+B;IACnC,QAAQ,CACb,GAAG,EAAE,6BAA6B,GACjC,YAAY,CAAC,4BAA4B,CAAC;IA4B7C,SAAS,CAAC,wBAAwB,CAChC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,wBAAwB,GAClC,YAAY;IAgBf,SAAS,CAAC,0BAA0B,CAClC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,0BAA0B,GACpC,gBAAgB,CAAC,OAAO,CAAC;IAQ5B,SAAS,CAAC,eAAe,CACvB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,eAAe,GACzB,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;IAiBxB,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAQ5E,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;IAgC7E,SAAS,CAAC,6BAA6B,CACrC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,6BAA6B,GACvC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;IAiBvB,SAAS,CAAC,yCAAyC,CACjD,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,WAAW,GACpB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"spring-controller-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-controllers/spring-controller-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { appendValueGroup, builderTemplate as s, createOverwriteProxy, getSource
|
|
|
2
2
|
import { getReasonPhrase } from 'http-status-codes';
|
|
3
3
|
import { kt } from '../../../ast/index.js';
|
|
4
4
|
import { KotlinFileBuilder } from '../../../file-builder.js';
|
|
5
|
-
import { getSourceDocLine, modifyString } from '../../../utils.js';
|
|
5
|
+
import { getArrayItemStringEnumSchema, getSourceDocLine, getStringEnumSchema, modifyString } from '../../../utils.js';
|
|
6
6
|
import { KotlinFileGenerator } from '../../file-generator.js';
|
|
7
7
|
const strictResponseCustomProperty = 'strict-response';
|
|
8
8
|
export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator {
|
|
@@ -114,11 +114,15 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
|
|
|
114
114
|
if (endpoint.responses.length > 0) {
|
|
115
115
|
annotations.push(kt.annotation(kt.refs.swagger.apiResponses(), [
|
|
116
116
|
kt.argument.named('value', kt.collectionLiteral(endpoint.responses.map((response) => {
|
|
117
|
-
var _a
|
|
117
|
+
var _a;
|
|
118
118
|
return kt.call(kt.refs.swagger.apiResponse(), [
|
|
119
|
-
kt.argument.named('responseCode',
|
|
119
|
+
kt.argument.named('responseCode',
|
|
120
|
+
// The spec's own response key, not `statusCode`: that field is `undefined` for
|
|
121
|
+
// `default` and every range code, and `kt.string(undefined)` renders the bare token
|
|
122
|
+
// `null`, which is not assignable to this non-nullable annotation element.
|
|
123
|
+
kt.string(response.statusKey)),
|
|
120
124
|
response.description
|
|
121
|
-
? kt.argument.named('description', kt.string((
|
|
125
|
+
? kt.argument.named('description', kt.string((_a = response.description) === null || _a === void 0 ? void 0 : _a.trim()))
|
|
122
126
|
: null,
|
|
123
127
|
kt.argument.named('content', kt.collectionLiteral((response.contentOptions.length === 0
|
|
124
128
|
? [{ schema: undefined, type: undefined }]
|
|
@@ -170,37 +174,46 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
|
|
|
170
174
|
return annotations;
|
|
171
175
|
}
|
|
172
176
|
getApiInterfaceEndpointMethodParameter(ctx, endpoint, parameter) {
|
|
173
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
|
174
|
-
const
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
!parameter.multipart;
|
|
177
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
178
|
+
const enumItemSchema = parameter.multipart ? undefined : getArrayItemStringEnumSchema(parameter.schema);
|
|
179
|
+
const enumSchema = parameter.multipart ? undefined : getStringEnumSchema(parameter.schema);
|
|
180
|
+
const enumValueSchema = enumSchema !== null && enumSchema !== void 0 ? enumSchema : enumItemSchema;
|
|
178
181
|
const actualType = this.getSchemaType(ctx, { schema: parameter.schema });
|
|
179
|
-
const
|
|
182
|
+
const isEnumSchema = !!enumValueSchema && !!actualType &&
|
|
183
|
+
!!this.getSchemaType(ctx, { schema: enumValueSchema });
|
|
184
|
+
const schemaType = !isEnumSchema
|
|
185
|
+
? actualType
|
|
186
|
+
: enumItemSchema
|
|
187
|
+
? kt.refs.list([kt.refs.string()], { nullable: actualType === null || actualType === void 0 ? void 0 : actualType.nullable })
|
|
188
|
+
: kt.refs.string({ nullable: actualType === null || actualType === void 0 ? void 0 : actualType.nullable });
|
|
180
189
|
const result = kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, {
|
|
181
190
|
endpoint,
|
|
182
191
|
parameter,
|
|
183
192
|
type: isEnumSchema ? schemaType : undefined,
|
|
184
193
|
}), {
|
|
185
|
-
default: parameter.multipart && ((
|
|
186
|
-
? kt.toNode((
|
|
194
|
+
default: parameter.multipart && ((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.default) !== undefined
|
|
195
|
+
? kt.toNode((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.default)
|
|
187
196
|
: null,
|
|
188
197
|
});
|
|
189
198
|
if (ctx.config.addSwaggerAnnotations) {
|
|
190
199
|
const annotation = kt.annotation(kt.refs.swagger.parameter(), [
|
|
191
200
|
parameter.multipart ? kt.argument.named('name', kt.string(parameter.multipart.name)) : null,
|
|
192
201
|
parameter.description
|
|
193
|
-
? kt.argument.named('description', kt.string((
|
|
202
|
+
? kt.argument.named('description', kt.string((_c = parameter.description) === null || _c === void 0 ? void 0 : _c.trim()))
|
|
194
203
|
: null,
|
|
195
204
|
kt.argument.named('required', parameter.required),
|
|
205
|
+
// Only emitted when set, matching how the model generator marks a deprecated property on `@Schema`.
|
|
206
|
+
// `@Operation` always states `deprecated`, but doing that for every parameter of every endpoint
|
|
207
|
+
// would add `deprecated = false` noise far beyond what the annotation is documenting.
|
|
208
|
+
parameter.deprecated ? kt.argument.named('deprecated', kt.toNode(true)) : null,
|
|
196
209
|
parameter.target === 'header' ? kt.argument.named('hidden', kt.toNode(true)) : null,
|
|
197
210
|
]);
|
|
198
211
|
const schemaArgs = [];
|
|
199
|
-
if (((
|
|
200
|
-
schemaArgs.push(kt.argument.named('defaultValue', kt.string(String((
|
|
212
|
+
if (((_d = parameter.schema) === null || _d === void 0 ? void 0 : _d.default) !== undefined) {
|
|
213
|
+
schemaArgs.push(kt.argument.named('defaultValue', kt.string(String((_e = parameter.schema) === null || _e === void 0 ? void 0 : _e.default))));
|
|
201
214
|
}
|
|
202
215
|
if (isEnumSchema) {
|
|
203
|
-
schemaArgs.push(kt.argument.named('allowableValues', kt.collectionLiteral((
|
|
216
|
+
schemaArgs.push(kt.argument.named('allowableValues', kt.collectionLiteral((_f = enumValueSchema === null || enumValueSchema === void 0 ? void 0 : enumValueSchema.enum) === null || _f === void 0 ? void 0 : _f.map((x) => kt.string(x === null || x === void 0 ? void 0 : x.toString())))));
|
|
204
217
|
}
|
|
205
218
|
if (schemaArgs.length) {
|
|
206
219
|
annotation.arguments.push(kt.argument.named('schema', kt.call([kt.refs.swagger.schema()], schemaArgs)));
|
|
@@ -213,15 +226,17 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
|
|
|
213
226
|
result.annotations.push(kt.annotation(kt.refs.jakarta.valid()));
|
|
214
227
|
}
|
|
215
228
|
if (parameter.target === 'body' && !parameter.multipart) {
|
|
216
|
-
|
|
229
|
+
// A bare @RequestBody is required as far as Spring is concerned, so an optional body has to say so in the
|
|
230
|
+
// annotation too - the nullable parameter type alone still answers 400 when the body is missing.
|
|
231
|
+
result.annotations.push(kt.annotation(kt.refs.spring.requestBody(), parameter.required ? [] : [kt.argument.named('required', parameter.required)]));
|
|
217
232
|
}
|
|
218
233
|
if (parameter.target === 'query') {
|
|
219
234
|
const annotation = kt.annotation(kt.refs.spring.requestParam(), [
|
|
220
235
|
kt.argument.named('value', kt.string(parameter.name)),
|
|
221
236
|
kt.argument.named('required', parameter.required),
|
|
222
237
|
]);
|
|
223
|
-
if (((
|
|
224
|
-
annotation.arguments.push(kt.argument.named('defaultValue', kt.string(String((
|
|
238
|
+
if (((_g = parameter.schema) === null || _g === void 0 ? void 0 : _g.default) !== undefined) {
|
|
239
|
+
annotation.arguments.push(kt.argument.named('defaultValue', kt.string(String((_h = parameter.schema) === null || _h === void 0 ? void 0 : _h.default))));
|
|
225
240
|
}
|
|
226
241
|
result.annotations.push(annotation);
|
|
227
242
|
}
|
|
@@ -248,22 +263,25 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
|
|
|
248
263
|
parameters.forEach((x) => {
|
|
249
264
|
var _a, _b;
|
|
250
265
|
const paramName = toCasing(x.name, ctx.config.parameterNameCasing);
|
|
251
|
-
if (
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
266
|
+
if (x.multipart)
|
|
267
|
+
return;
|
|
268
|
+
const enumItemSchema = getArrayItemStringEnumSchema(x.schema);
|
|
269
|
+
const enumValueSchema = (_a = getStringEnumSchema(x.schema)) !== null && _a !== void 0 ? _a : enumItemSchema;
|
|
270
|
+
if (!enumValueSchema)
|
|
271
|
+
return;
|
|
272
|
+
const schemaType = this.getSchemaType(ctx, { schema: x.schema });
|
|
273
|
+
const enumType = this.getSchemaType(ctx, { schema: enumValueSchema });
|
|
274
|
+
if (schemaType && enumType) {
|
|
275
|
+
body.values.push(s `val ${paramName} = ${paramName}${schemaType.nullable || (!x.required && !((_b = x.schema) === null || _b === void 0 ? void 0 : _b.default)) ? '?' : ''}.${enumItemSchema ? 'map' : 'let'} { ${enumType}.fromValue(it) ?: return ${kt.refs.spring.responseEntity.infer()}.status(${kt.refs.spring.httpStatus()}.BAD_REQUEST).body(${kt.string(`Invalid value for parameter ${x.name}`)}) }`);
|
|
258
276
|
}
|
|
259
277
|
});
|
|
260
|
-
body.values.push(s `try {${s.indent `
|
|
278
|
+
body.values.push(s `try {${s.indent `
|
|
261
279
|
return ${kt.call([
|
|
262
280
|
kt.call(kt.reference('getDelegate'), []),
|
|
263
281
|
toCasing(endpoint.name, ctx.config.functionNameCasing),
|
|
264
|
-
], parameters.map((x) => toCasing(x.name, ctx.config.parameterNameCasing)))}`}
|
|
265
|
-
} catch (e: ${kt.refs.throwable()}) {${s.indent `
|
|
266
|
-
return getExceptionHandler()?.handleApiException(e) ?: throw e`}
|
|
282
|
+
], parameters.map((x) => toCasing(x.name, ctx.config.parameterNameCasing)))}`}
|
|
283
|
+
} catch (e: ${kt.refs.throwable()}) {${s.indent `
|
|
284
|
+
return getExceptionHandler()?.handleApiException(e) ?: throw e`}
|
|
267
285
|
}`);
|
|
268
286
|
return body;
|
|
269
287
|
}
|
|
@@ -325,11 +343,11 @@ export class DefaultKotlinSpringControllerGenerator extends KotlinFileGenerator
|
|
|
325
343
|
hasResponseBody ? kt.argument('body') : kt.toNode(null),
|
|
326
344
|
kt.toNode(code),
|
|
327
345
|
contentType
|
|
328
|
-
? s `${kt.refs.spring.linkedMultiValueMap([kt.refs.string(), kt.refs.string()])}().also {
|
|
329
|
-
if (headers != null) {
|
|
330
|
-
it.putAll(headers)
|
|
331
|
-
}
|
|
332
|
-
it.addIfAbsent("Content-Type", ${kt.string(contentType)})
|
|
346
|
+
? s `${kt.refs.spring.linkedMultiValueMap([kt.refs.string(), kt.refs.string()])}().also {
|
|
347
|
+
if (headers != null) {
|
|
348
|
+
it.putAll(headers)
|
|
349
|
+
}
|
|
350
|
+
it.addIfAbsent("Content-Type", ${kt.string(contentType)})
|
|
333
351
|
}`
|
|
334
352
|
: kt.argument('headers'),
|
|
335
353
|
]),
|
|
@@ -10,6 +10,9 @@ export type GetEndpointMembers = {
|
|
|
10
10
|
export type GetEndpointFunctionName = {
|
|
11
11
|
endpoint: ApiEndpoint;
|
|
12
12
|
};
|
|
13
|
+
export type GetEndpointDeprecatedAnnotations = {
|
|
14
|
+
endpoint: ApiEndpoint;
|
|
15
|
+
};
|
|
13
16
|
export type GetEndpointFunction = {
|
|
14
17
|
endpoint: ApiEndpoint;
|
|
15
18
|
parameters: ApiParameterWithMultipartInfo[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,6BAA6B,EAAE,CAAA;CAAE,CAAC;AAExG,MAAM,MAAM,uBAAuB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvE,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEjE,MAAM,MAAM,yBAAyB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,0BAA0B,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,6BAA6B,EAAE,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,6BAA6B,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,6BAA6B,CAAA;CAAE,CAAC;AAEnG,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAE3D,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,QAAQ,SAAS,aAAa,IAAI;IACzD,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,yBAAyB,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,13 @@ export declare class DefaultKotlinSpringReactiveWebClientGenerator extends Kotli
|
|
|
17
17
|
protected getRequestsObject(ctx: Context, args: Args.GetRequestsObject): kt.Object<Builder>;
|
|
18
18
|
protected getEndpointMembers(ctx: Context, args: Args.GetEndpointMembers): kt.ObjectMember<Builder>[];
|
|
19
19
|
protected getEndpointFunctionName(ctx: Context, args: Args.GetEndpointFunctionName): string;
|
|
20
|
+
/**
|
|
21
|
+
* The Kotlin `@Deprecated` annotation for a deprecated operation, or nothing for a supported one. Every
|
|
22
|
+
* function generated for the operation carries it, matching what the OkHttp3 client generator does for
|
|
23
|
+
* the same input — including the empty message, which is what `kotlin.Deprecated` requires as its first
|
|
24
|
+
* positional argument.
|
|
25
|
+
*/
|
|
26
|
+
protected getEndpointDeprecatedAnnotations(_ctx: Context, args: Args.GetEndpointDeprecatedAnnotations): kt.Annotation<Builder>[];
|
|
20
27
|
protected getEndpointFunction(ctx: Context, args: Args.GetEndpointFunction): kt.Function<Builder>;
|
|
21
28
|
protected getEndpointFunctionBody(ctx: Context, args: Args.GetEndpointFunctionBody): AppendValueGroup<Builder>;
|
|
22
29
|
protected getEndpointFunctionWithHandler(ctx: Context, args: Args.GetEndpointFunctionWithHandler): kt.Function<Builder>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spring-reactive-web-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAIrB,KAAK,YAAY,EAGjB,aAAa,EAEd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,iDAAiD,IAAI,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EACV,6CAA6C,EAC7C,4CAA4C,EAC7C,MAAM,aAAa,CAAC;AAErB,KAAK,OAAO,GAAG,6CAA6C,CAAC;AAC7D,KAAK,MAAM,GAAG,4CAA4C,CAAC;AAC3D,KAAK,OAAO,GAAG,iBAAiB,CAAC;AAEjC,MAAM,WAAW,sCAAsC,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACrF,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,qBAAa,6CAA8C,SAAQ,mBAAmB,CAAC,OAAO,EAAE,MAAM,CACpG,YAAW,sCAAsC;IAC1C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC;IAoBnD,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAKxG,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;IAS3F,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;IAYrG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,GAAG,MAAM;IAK3F,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"spring-reactive-web-client-generator.d.ts","sourceRoot":"","sources":["../../../../../src/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { appendValueGroup, builderTemplate as s, createOverwriteProxy, getSourceDisplayName, notNullish, resolveAnyOfAndAllOf, SourceBuilder, toCasing, } from '@goast/core';
|
|
2
2
|
import { kt } from '../../../ast/index.js';
|
|
3
3
|
import { KotlinFileBuilder } from '../../../file-builder.js';
|
|
4
|
-
import { getSourceDocLine, modifyString } from '../../../utils.js';
|
|
4
|
+
import { getArrayItemStringEnumSchema, getSourceDocLine, getStringEnumSchema, modifyString } from '../../../utils.js';
|
|
5
5
|
import { KotlinFileGenerator } from '../../file-generator.js';
|
|
6
6
|
export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGenerator {
|
|
7
7
|
generate(ctx) {
|
|
@@ -42,11 +42,21 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
42
42
|
const { endpoint } = args;
|
|
43
43
|
return toCasing(endpoint.name, ctx.config.functionNameCasing);
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* The Kotlin `@Deprecated` annotation for a deprecated operation, or nothing for a supported one. Every
|
|
47
|
+
* function generated for the operation carries it, matching what the OkHttp3 client generator does for
|
|
48
|
+
* the same input — including the empty message, which is what `kotlin.Deprecated` requires as its first
|
|
49
|
+
* positional argument.
|
|
50
|
+
*/
|
|
51
|
+
getEndpointDeprecatedAnnotations(_ctx, args) {
|
|
52
|
+
return args.endpoint.deprecated ? [kt.annotation(kt.refs.deprecated(), [kt.argument(kt.string(''))])] : [];
|
|
53
|
+
}
|
|
45
54
|
getEndpointFunction(ctx, args) {
|
|
46
55
|
const { endpoint, parameters, responseSchema } = args;
|
|
47
56
|
const functionName = this.getEndpointFunctionName(ctx, { endpoint });
|
|
48
57
|
return kt.function(functionName, {
|
|
49
58
|
doc: kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
|
|
59
|
+
annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
|
|
50
60
|
suspend: true,
|
|
51
61
|
receiverType: kt.refs.springReactive.webClient(),
|
|
52
62
|
parameters: parameters.map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
|
|
@@ -82,11 +92,11 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
82
92
|
const functionName = this.getEndpointFunctionName(ctx, { endpoint });
|
|
83
93
|
return kt.function(functionName, {
|
|
84
94
|
doc: kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
|
|
95
|
+
annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
|
|
85
96
|
suspend: true,
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
],
|
|
97
|
+
// `WebClient.awaitExchange` is `<V : Any>` on both Spring lines, so the `<T>` overload needs the bound
|
|
98
|
+
// unconditionally. Defect 28 scoped it to Spring Boot 4, leaving every Boot 3 unit uncompilable.
|
|
99
|
+
generics: [kt.genericParameter('T', { constraint: kt.refs.any() })],
|
|
90
100
|
receiverType: kt.refs.springReactive.webClient(),
|
|
91
101
|
parameters: [
|
|
92
102
|
...parameters.map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
|
|
@@ -116,6 +126,7 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
116
126
|
const functionName = this.getEndpointRequestFunctionName(ctx, { endpoint });
|
|
117
127
|
return kt.function(functionName, {
|
|
118
128
|
doc: kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
|
|
129
|
+
annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
|
|
119
130
|
receiverType: kt.refs.springReactive.webClient(),
|
|
120
131
|
parameters: parameters.map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
|
|
121
132
|
returnType: kt.refs.springReactive.requestHeadersSpec(['*']),
|
|
@@ -189,9 +200,9 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
189
200
|
const parameterName = toCasing(p.name, ctx.config.parameterNameCasing);
|
|
190
201
|
const toString = this.getParameterToString(ctx, { endpoint, parameter: p });
|
|
191
202
|
return p.required && !((_a = p.schema) === null || _a === void 0 ? void 0 : _a.nullable)
|
|
192
|
-
? kt.call(['headers', 'add'], [kt.string(p.name), parameterName
|
|
203
|
+
? kt.call(['headers', 'add'], [kt.string(p.name), s `${parameterName}${toString}`])
|
|
193
204
|
: kt.call([`${parameterName}?`, 'also'], [
|
|
194
|
-
kt.lambda([], kt.call(['headers', 'add'], [kt.string(p.name),
|
|
205
|
+
kt.lambda([], kt.call(['headers', 'add'], [kt.string(p.name), s `it${toString}`]), {
|
|
195
206
|
singleline: true,
|
|
196
207
|
}),
|
|
197
208
|
]);
|
|
@@ -246,9 +257,11 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
246
257
|
const parameterName = toCasing(p.name, ctx.config.parameterNameCasing);
|
|
247
258
|
const toString = this.getParameterToString(ctx, { endpoint, parameter: p });
|
|
248
259
|
return p.required && !((_a = p.schema) === null || _a === void 0 ? void 0 : _a.nullable)
|
|
249
|
-
? kt.call('queryParam', [kt.string(p.name), parameterName
|
|
260
|
+
? kt.call('queryParam', [kt.string(p.name), s `${parameterName}${toString}`])
|
|
250
261
|
: kt.call([`${parameterName}?`, 'also'], [
|
|
251
|
-
kt.lambda([], kt.call('queryParam', [kt.string(p.name),
|
|
262
|
+
kt.lambda([], kt.call('queryParam', [kt.string(p.name), s `it${toString}`]), {
|
|
263
|
+
singleline: true,
|
|
264
|
+
}),
|
|
252
265
|
]);
|
|
253
266
|
}), '\n');
|
|
254
267
|
}
|
|
@@ -260,6 +273,7 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
260
273
|
const { endpoint, parameters } = args;
|
|
261
274
|
const functionName = this.getEndpointUriFunctionName(ctx, { endpoint });
|
|
262
275
|
return kt.function(functionName, {
|
|
276
|
+
annotations: this.getEndpointDeprecatedAnnotations(ctx, { endpoint }),
|
|
263
277
|
parameters: parameters.filter((p) => p.target === 'path' || p.target === 'query').map((parameter) => kt.parameter(toCasing(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }), { default: this.getParameterDefaultValue(ctx, { endpoint, parameter }) })),
|
|
264
278
|
returnType: kt.refs.string(),
|
|
265
279
|
body: this.getEndpointUriFunctionBody(ctx, { endpoint, parameters }),
|
|
@@ -281,13 +295,14 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
281
295
|
return result;
|
|
282
296
|
}
|
|
283
297
|
getParameterToString(ctx, args) {
|
|
284
|
-
var _a
|
|
298
|
+
var _a;
|
|
285
299
|
const { parameter } = args;
|
|
286
300
|
if (((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.kind) === 'array') {
|
|
287
|
-
|
|
301
|
+
const itemEnumSchema = getArrayItemStringEnumSchema(parameter.schema);
|
|
302
|
+
const itemEnumType = itemEnumSchema && this.getSchemaType(ctx, { schema: itemEnumSchema });
|
|
303
|
+
return itemEnumType ? s `.joinToString(",", transform = ${itemEnumType}::value)` : '.joinToString(",")';
|
|
288
304
|
}
|
|
289
|
-
else if ((
|
|
290
|
-
this.getSchemaType(ctx, { schema: parameter.schema })) {
|
|
305
|
+
else if (getStringEnumSchema(parameter.schema) && this.getSchemaType(ctx, { schema: parameter.schema })) {
|
|
291
306
|
return '.value';
|
|
292
307
|
}
|
|
293
308
|
else {
|
|
@@ -306,13 +321,19 @@ export class DefaultKotlinSpringReactiveWebClientGenerator extends KotlinFileGen
|
|
|
306
321
|
});
|
|
307
322
|
}
|
|
308
323
|
getParameterDefaultValue(ctx, args) {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
324
|
+
const { schema } = args.parameter;
|
|
325
|
+
if (args.parameter.required) {
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
if (getStringEnumSchema(schema) && (schema === null || schema === void 0 ? void 0 : schema.default)) {
|
|
329
|
+
return s `${this.getTypeUsage(ctx, { schema, nullable: false })}.${this.toEnumValueName(ctx, schema.enum, schema.default)}`;
|
|
330
|
+
}
|
|
331
|
+
const itemEnumSchema = getArrayItemStringEnumSchema(schema);
|
|
332
|
+
if (itemEnumSchema && Array.isArray(schema === null || schema === void 0 ? void 0 : schema.default)) {
|
|
333
|
+
const itemType = this.getTypeUsage(ctx, { schema: itemEnumSchema, nullable: false });
|
|
334
|
+
return kt.call(kt.refs.listOf.infer(), schema.default.map((x) => s `${itemType}.${this.toEnumValueName(ctx, itemEnumSchema.enum, x)}`));
|
|
335
|
+
}
|
|
336
|
+
return kt.toNode(schema === null || schema === void 0 ? void 0 : schema.default);
|
|
316
337
|
}
|
|
317
338
|
getTypeUsage(ctx, args) {
|
|
318
339
|
const { schema, nullable, fallback } = args;
|