@goast/kotlin 0.1.3 → 0.1.5
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.
|
@@ -146,7 +146,8 @@ class DefaultKotlinModelGenerator extends file_generator_1.KotlinFileGenerator {
|
|
|
146
146
|
.appendIf(inheritedSchemas.some((x) => this.hasProperty(ctx, x, property.name)), 'override ')
|
|
147
147
|
.append(`val ${(0, core_1.toCasing)(property.name, 'camel')}: `)
|
|
148
148
|
.append((builder) => this.generateTypeUsage(ctx, builder, property.schema))
|
|
149
|
-
.if(!schema.required.has(property.name), (builder) => builder.appendIf(!property.schema.nullable, '?')
|
|
149
|
+
.if(!schema.required.has(property.name), (builder) => builder.appendIf(!property.schema.nullable, '?'))
|
|
150
|
+
.appendIf(property.schema.default !== undefined || !schema.required.has(property.name), ' = ', (builder) => this.generateDefaultValue(ctx, builder, property.schema)), { separator: ',\n' }), { multiline: true })
|
|
150
151
|
.if(inheritedSchemas.length > 0, (builder) => builder
|
|
151
152
|
.append(' : ')
|
|
152
153
|
.forEach(inheritedSchemas, (builder, schema) => this.generateTypeUsage(ctx, builder, schema), {
|
|
@@ -175,6 +176,36 @@ class DefaultKotlinModelGenerator extends file_generator_1.KotlinFileGenerator {
|
|
|
175
176
|
.append(' ')
|
|
176
177
|
.parenthesize('{}', 'return this.additionalProperties', { multiline: true })), { multiline: true });
|
|
177
178
|
}
|
|
179
|
+
generateDefaultValue(ctx, builder, schema) {
|
|
180
|
+
if (schema.default === null || schema.default === undefined) {
|
|
181
|
+
builder.append('null');
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
switch (schema.kind) {
|
|
185
|
+
case 'boolean':
|
|
186
|
+
builder.append(Boolean(schema.default) || String(schema.default).toLowerCase() === 'true' ? 'true' : 'false');
|
|
187
|
+
break;
|
|
188
|
+
case 'integer':
|
|
189
|
+
case 'number':
|
|
190
|
+
builder.append(String(schema.default));
|
|
191
|
+
break;
|
|
192
|
+
case 'string':
|
|
193
|
+
if (schema.enum && schema.enum.length > 0) {
|
|
194
|
+
builder
|
|
195
|
+
.append((builder) => this.generateTypeUsage(ctx, builder, schema))
|
|
196
|
+
.append('.')
|
|
197
|
+
.append((0, core_1.toCasing)(String(schema.default), ctx.config.enumValueNameCasing));
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
builder.append(this.toStringLiteral(ctx, String(schema.default)));
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
default:
|
|
204
|
+
builder.append('null');
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
178
209
|
generateObjectDataClassParameterAnnotations(ctx, builder, schema, property) {
|
|
179
210
|
this.generatePropertyValidationAnnotations(ctx, builder, schema, property);
|
|
180
211
|
this.generatePropertySchemaAnnotation(ctx, builder, schema, property);
|
|
@@ -255,7 +286,7 @@ class DefaultKotlinModelGenerator extends file_generator_1.KotlinFileGenerator {
|
|
|
255
286
|
}
|
|
256
287
|
break;
|
|
257
288
|
case 'null':
|
|
258
|
-
builder.append('
|
|
289
|
+
builder.append('Nothing');
|
|
259
290
|
break;
|
|
260
291
|
case 'unknown':
|
|
261
292
|
builder.append('Any');
|
|
@@ -143,7 +143,8 @@ export class DefaultKotlinModelGenerator extends KotlinFileGenerator {
|
|
|
143
143
|
.appendIf(inheritedSchemas.some((x) => this.hasProperty(ctx, x, property.name)), 'override ')
|
|
144
144
|
.append(`val ${toCasing(property.name, 'camel')}: `)
|
|
145
145
|
.append((builder) => this.generateTypeUsage(ctx, builder, property.schema))
|
|
146
|
-
.if(!schema.required.has(property.name), (builder) => builder.appendIf(!property.schema.nullable, '?')
|
|
146
|
+
.if(!schema.required.has(property.name), (builder) => builder.appendIf(!property.schema.nullable, '?'))
|
|
147
|
+
.appendIf(property.schema.default !== undefined || !schema.required.has(property.name), ' = ', (builder) => this.generateDefaultValue(ctx, builder, property.schema)), { separator: ',\n' }), { multiline: true })
|
|
147
148
|
.if(inheritedSchemas.length > 0, (builder) => builder
|
|
148
149
|
.append(' : ')
|
|
149
150
|
.forEach(inheritedSchemas, (builder, schema) => this.generateTypeUsage(ctx, builder, schema), {
|
|
@@ -172,6 +173,36 @@ export class DefaultKotlinModelGenerator extends KotlinFileGenerator {
|
|
|
172
173
|
.append(' ')
|
|
173
174
|
.parenthesize('{}', 'return this.additionalProperties', { multiline: true })), { multiline: true });
|
|
174
175
|
}
|
|
176
|
+
generateDefaultValue(ctx, builder, schema) {
|
|
177
|
+
if (schema.default === null || schema.default === undefined) {
|
|
178
|
+
builder.append('null');
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
switch (schema.kind) {
|
|
182
|
+
case 'boolean':
|
|
183
|
+
builder.append(Boolean(schema.default) || String(schema.default).toLowerCase() === 'true' ? 'true' : 'false');
|
|
184
|
+
break;
|
|
185
|
+
case 'integer':
|
|
186
|
+
case 'number':
|
|
187
|
+
builder.append(String(schema.default));
|
|
188
|
+
break;
|
|
189
|
+
case 'string':
|
|
190
|
+
if (schema.enum && schema.enum.length > 0) {
|
|
191
|
+
builder
|
|
192
|
+
.append((builder) => this.generateTypeUsage(ctx, builder, schema))
|
|
193
|
+
.append('.')
|
|
194
|
+
.append(toCasing(String(schema.default), ctx.config.enumValueNameCasing));
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
builder.append(this.toStringLiteral(ctx, String(schema.default)));
|
|
198
|
+
}
|
|
199
|
+
break;
|
|
200
|
+
default:
|
|
201
|
+
builder.append('null');
|
|
202
|
+
break;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
175
206
|
generateObjectDataClassParameterAnnotations(ctx, builder, schema, property) {
|
|
176
207
|
this.generatePropertyValidationAnnotations(ctx, builder, schema, property);
|
|
177
208
|
this.generatePropertySchemaAnnotation(ctx, builder, schema, property);
|
|
@@ -252,7 +283,7 @@ export class DefaultKotlinModelGenerator extends KotlinFileGenerator {
|
|
|
252
283
|
}
|
|
253
284
|
break;
|
|
254
285
|
case 'null':
|
|
255
|
-
builder.append('
|
|
286
|
+
builder.append('Nothing');
|
|
256
287
|
break;
|
|
257
288
|
case 'unknown':
|
|
258
289
|
builder.append('Any');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goast/kotlin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"repository": "https://github.com/MaSch0212/goast.git",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Marc Schmidt (MaSch0212)",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"fs-extra": "^11.1.1",
|
|
13
13
|
"node-fetch": "^2.6.11",
|
|
14
14
|
"yaml": "^2.3.1",
|
|
15
|
-
"@goast/core": "0.1.
|
|
15
|
+
"@goast/core": "0.1.1",
|
|
16
16
|
"tslib": "^2.3.0"
|
|
17
17
|
},
|
|
18
18
|
"module": "./esm/index.js",
|
|
@@ -19,6 +19,7 @@ export declare class DefaultKotlinModelGenerator extends KotlinFileGenerator<Con
|
|
|
19
19
|
protected generateObjectInterfaceSignature(ctx: Context, builder: Builder, schema: ApiSchema<'object'>): void;
|
|
20
20
|
protected generateObjectInterfaceMembers(ctx: Context, builder: Builder, schema: ApiSchema<'object'>): void;
|
|
21
21
|
protected generateObjectDataClass(ctx: Context, builder: Builder, schema: ApiSchema<'object'>): void;
|
|
22
|
+
protected generateDefaultValue(ctx: Context, builder: Builder, schema: ApiSchema): void;
|
|
22
23
|
protected generateObjectDataClassParameterAnnotations(ctx: Context, builder: Builder, schema: ApiSchema, property: ApiSchemaProperty): void;
|
|
23
24
|
protected generatePropertyValidationAnnotations(ctx: Context, builder: Builder, schema: ApiSchema, property: ApiSchemaProperty): void;
|
|
24
25
|
protected generatePropertySchemaAnnotation(ctx: Context, builder: Builder, schema: ApiSchema, property: ApiSchemaProperty): void;
|