fix: Emit top level primitives for missing Languages (#2552)
This commit is contained in:
@ -302,6 +302,11 @@ export class KotlinRenderer extends ConvenienceRenderer {
|
||||
this.ensureBlankLine();
|
||||
}
|
||||
|
||||
protected emitTopLevelPrimitive(t: PrimitiveType, name: Name): void {
|
||||
const elementType = this.kotlinType(t);
|
||||
this.emitLine(["typealias ", name, " = ", elementType, ""]);
|
||||
}
|
||||
|
||||
protected emitTopLevelArray(t: ArrayType, name: Name): void {
|
||||
const elementType = this.kotlinType(t.items);
|
||||
this.emitLine(["typealias ", name, " = ArrayList<", elementType, ">"]);
|
||||
@ -446,6 +451,8 @@ export class KotlinRenderer extends ConvenienceRenderer {
|
||||
this.emitTopLevelArray(t, name);
|
||||
} else if (t instanceof MapType) {
|
||||
this.emitTopLevelMap(t, name);
|
||||
} else if (t.isPrimitive()) {
|
||||
this.emitTopLevelPrimitive(t, name);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -206,6 +206,16 @@ export abstract class TypeScriptFlowBaseRenderer extends JavaScriptRenderer {
|
||||
}
|
||||
|
||||
protected emitTypes(): void {
|
||||
// emit primitive top levels
|
||||
this.forEachTopLevel("none", (t, name) => {
|
||||
if (!t.isPrimitive()) {
|
||||
return;
|
||||
}
|
||||
this.ensureBlankLine();
|
||||
this.emitDescription(this.descriptionForType(t));
|
||||
this.emitLine("type ", name, " = ", this.sourceFor(t).source, ";");
|
||||
});
|
||||
|
||||
this.forEachNamedType(
|
||||
"leading-and-interposing",
|
||||
(c: ClassType, n: Name) => this.emitClass(c, n),
|
||||
@ -337,6 +347,10 @@ export class TypeScriptRenderer extends TypeScriptFlowBaseRenderer {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
protected emitSourceStructure() {
|
||||
super.emitSourceStructure();
|
||||
}
|
||||
}
|
||||
|
||||
export class FlowTargetLanguage extends TypeScriptFlowBaseTargetLanguage {
|
||||
|
6
test/inputs/schema/top-level-primitive.schema
Normal file
6
test/inputs/schema/top-level-primitive.schema
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "http://json-schema.org/geo",
|
||||
"$schema": "http://json-schema.org/draft-06/schema#",
|
||||
"description": "Top level primitive",
|
||||
"type": "number"
|
||||
}
|
@ -688,7 +688,8 @@ export const SwiftLanguage: Language = {
|
||||
"date-time.schema",
|
||||
"class-with-additional.schema",
|
||||
"class-map-union.schema",
|
||||
"vega-lite.schema"
|
||||
"vega-lite.schema",
|
||||
"top-level-primitive.schema"
|
||||
],
|
||||
rendererOptions: { "support-linux": "true" },
|
||||
quickTestRendererOptions: [
|
||||
@ -1100,7 +1101,8 @@ export const KotlinLanguage: Language = {
|
||||
"keyword-enum.schema",
|
||||
"keyword-unions.schema",
|
||||
// Klaxon does not support top-level primitives
|
||||
"top-level-enum.schema"
|
||||
"top-level-enum.schema",
|
||||
"top-level-primitive.schema"
|
||||
],
|
||||
skipMiscJSON: false,
|
||||
rendererOptions: {},
|
||||
@ -1183,7 +1185,8 @@ export const KotlinJacksonLanguage: Language = {
|
||||
"keyword-enum.schema",
|
||||
"keyword-unions.schema",
|
||||
// Klaxon does not support top-level primitives
|
||||
"top-level-enum.schema"
|
||||
"top-level-enum.schema",
|
||||
"top-level-primitive.schema"
|
||||
],
|
||||
skipMiscJSON: false,
|
||||
rendererOptions: { framework: "jackson" },
|
||||
|
Reference in New Issue
Block a user