fix: Emit top level primitives for missing Languages (#2552)

This commit is contained in:
inferrinizzard
2024-04-20 15:24:42 -07:00
committed by GitHub
parent 0804c4c740
commit 32028a89ca
4 changed files with 33 additions and 3 deletions

View File

@ -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);
}
});

View File

@ -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 {

View 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"
}

View File

@ -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" },