@goast/kotlin 0.1.3 → 0.1.4
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,28 @@ 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
|
+
builder.append(this.toStringLiteral(ctx, String(schema.default)));
|
|
194
|
+
break;
|
|
195
|
+
default:
|
|
196
|
+
builder.append('null');
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
178
201
|
generateObjectDataClassParameterAnnotations(ctx, builder, schema, property) {
|
|
179
202
|
this.generatePropertyValidationAnnotations(ctx, builder, schema, property);
|
|
180
203
|
this.generatePropertySchemaAnnotation(ctx, builder, schema, property);
|
|
@@ -255,7 +278,7 @@ class DefaultKotlinModelGenerator extends file_generator_1.KotlinFileGenerator {
|
|
|
255
278
|
}
|
|
256
279
|
break;
|
|
257
280
|
case 'null':
|
|
258
|
-
builder.append('
|
|
281
|
+
builder.append('Nothing');
|
|
259
282
|
break;
|
|
260
283
|
case 'unknown':
|
|
261
284
|
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,28 @@ 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
|
+
builder.append(this.toStringLiteral(ctx, String(schema.default)));
|
|
191
|
+
break;
|
|
192
|
+
default:
|
|
193
|
+
builder.append('null');
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
175
198
|
generateObjectDataClassParameterAnnotations(ctx, builder, schema, property) {
|
|
176
199
|
this.generatePropertyValidationAnnotations(ctx, builder, schema, property);
|
|
177
200
|
this.generatePropertySchemaAnnotation(ctx, builder, schema, property);
|
|
@@ -252,7 +275,7 @@ export class DefaultKotlinModelGenerator extends KotlinFileGenerator {
|
|
|
252
275
|
}
|
|
253
276
|
break;
|
|
254
277
|
case 'null':
|
|
255
|
-
builder.append('
|
|
278
|
+
builder.append('Nothing');
|
|
256
279
|
break;
|
|
257
280
|
case 'unknown':
|
|
258
281
|
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.4",
|
|
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;
|