quicktype-core 22.0.0 → 23.0.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/dist/language/Java.d.ts +2 -3
- package/dist/language/Java.js +6 -26
- package/package.json +1 -1
package/dist/language/Java.d.ts
CHANGED
|
@@ -8,12 +8,12 @@ import { TargetLanguage } from "../TargetLanguage";
|
|
|
8
8
|
import { ClassProperty, ClassType, EnumType, Type, UnionType } from "../Type";
|
|
9
9
|
import { StringTypeMapping } from "..";
|
|
10
10
|
export declare const javaOptions: {
|
|
11
|
-
classStyle: EnumOption<"java" | "java-record" | "lombok">;
|
|
12
11
|
useList: EnumOption<boolean>;
|
|
13
12
|
justTypes: BooleanOption;
|
|
14
|
-
dateTimeProvider: EnumOption<
|
|
13
|
+
dateTimeProvider: EnumOption<string>;
|
|
15
14
|
acronymStyle: EnumOption<AcronymStyleOptions>;
|
|
16
15
|
packageName: StringOption;
|
|
16
|
+
lombok: BooleanOption;
|
|
17
17
|
lombokCopyAnnotations: BooleanOption;
|
|
18
18
|
};
|
|
19
19
|
export declare class JavaTargetLanguage extends TargetLanguage {
|
|
@@ -96,7 +96,6 @@ export declare class JavaRenderer extends ConvenienceRenderer {
|
|
|
96
96
|
protected importsForClass(c: ClassType): string[];
|
|
97
97
|
protected importsForUnionMembers(u: UnionType): string[];
|
|
98
98
|
protected emitClassDefinition(c: ClassType, className: Name): void;
|
|
99
|
-
private emitClassRecordDefinition;
|
|
100
99
|
protected unionField(u: UnionType, t: Type, withIssues?: boolean): {
|
|
101
100
|
fieldType: Sourcelike;
|
|
102
101
|
fieldName: Sourcelike;
|
package/dist/language/Java.js
CHANGED
|
@@ -13,11 +13,6 @@ const TargetLanguage_1 = require("../TargetLanguage");
|
|
|
13
13
|
const Type_1 = require("../Type");
|
|
14
14
|
const TypeUtils_1 = require("../TypeUtils");
|
|
15
15
|
exports.javaOptions = {
|
|
16
|
-
classStyle: new RendererOptions_1.EnumOption("class-style", "Style of generated Java classes", [
|
|
17
|
-
["java", "java"],
|
|
18
|
-
["java-record", "java-record"],
|
|
19
|
-
["lombok", "lombok"]
|
|
20
|
-
], "java"),
|
|
21
16
|
useList: new RendererOptions_1.EnumOption("array-type", "Use T[] or List<T>", [
|
|
22
17
|
["array", false],
|
|
23
18
|
["list", true]
|
|
@@ -30,6 +25,7 @@ exports.javaOptions = {
|
|
|
30
25
|
acronymStyle: (0, Acronyms_1.acronymOption)(Acronyms_1.AcronymStyleOptions.Pascal),
|
|
31
26
|
// FIXME: Do this via a configurable named eventually.
|
|
32
27
|
packageName: new RendererOptions_1.StringOption("package", "Generated package name", "NAME", "io.quicktype"),
|
|
28
|
+
lombok: new RendererOptions_1.BooleanOption("lombok", "Use lombok", false, "primary"),
|
|
33
29
|
lombokCopyAnnotations: new RendererOptions_1.BooleanOption("lombok-copy-annotations", "Copy accessor annotations", true, "secondary")
|
|
34
30
|
};
|
|
35
31
|
class JavaTargetLanguage extends TargetLanguage_1.TargetLanguage {
|
|
@@ -38,12 +34,12 @@ class JavaTargetLanguage extends TargetLanguage_1.TargetLanguage {
|
|
|
38
34
|
}
|
|
39
35
|
getOptions() {
|
|
40
36
|
return [
|
|
41
|
-
exports.javaOptions.classStyle,
|
|
42
37
|
exports.javaOptions.useList,
|
|
43
38
|
exports.javaOptions.justTypes,
|
|
44
39
|
exports.javaOptions.dateTimeProvider,
|
|
45
40
|
exports.javaOptions.acronymStyle,
|
|
46
41
|
exports.javaOptions.packageName,
|
|
42
|
+
exports.javaOptions.lombok,
|
|
47
43
|
exports.javaOptions.lombokCopyAnnotations
|
|
48
44
|
];
|
|
49
45
|
}
|
|
@@ -540,7 +536,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
540
536
|
}
|
|
541
537
|
}
|
|
542
538
|
emitClassAttributes(_c, _className) {
|
|
543
|
-
if (this._options.
|
|
539
|
+
if (this._options.lombok) {
|
|
544
540
|
this.emitLine("@lombok.Data");
|
|
545
541
|
}
|
|
546
542
|
}
|
|
@@ -581,12 +577,9 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
581
577
|
this.emitFileHeader(className, imports);
|
|
582
578
|
this.emitDescription(this.descriptionForType(c));
|
|
583
579
|
this.emitClassAttributes(c, className);
|
|
584
|
-
if (this._options.classStyle === "java-record") {
|
|
585
|
-
return this.emitClassRecordDefinition(c, className);
|
|
586
|
-
}
|
|
587
580
|
this.emitBlock(["public class ", className], () => {
|
|
588
581
|
this.forEachClassProperty(c, "none", (name, jsonName, p) => {
|
|
589
|
-
if (this._options.
|
|
582
|
+
if (this._options.lombok && this._options.lombokCopyAnnotations) {
|
|
590
583
|
const getter = this.annotationsForAccessor(c, className, name, jsonName, p, false);
|
|
591
584
|
const setter = this.annotationsForAccessor(c, className, name, jsonName, p, true);
|
|
592
585
|
if (getter.length !== 0) {
|
|
@@ -598,7 +591,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
598
591
|
}
|
|
599
592
|
this.emitLine("private ", this.javaType(false, p.type, true), " ", name, ";");
|
|
600
593
|
});
|
|
601
|
-
if (this._options.
|
|
594
|
+
if (!this._options.lombok) {
|
|
602
595
|
this.forEachClassProperty(c, "leading-and-interposing", (name, jsonName, p) => {
|
|
603
596
|
this.emitDescription(this.descriptionForClassProperty(c, jsonName));
|
|
604
597
|
const [getterName, setterName] = (0, Support_1.defined)(this._gettersAndSettersForPropertyName.get(name));
|
|
@@ -612,19 +605,6 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
612
605
|
});
|
|
613
606
|
this.finishFile();
|
|
614
607
|
}
|
|
615
|
-
emitClassRecordDefinition(c, className) {
|
|
616
|
-
this.emitLine("public record ", className, " (");
|
|
617
|
-
this.indent(() => {
|
|
618
|
-
this.forEachClassProperty(c, "leading-and-interposing", (name, jsonName, p, position) => {
|
|
619
|
-
this.annotationsForAccessor(c, className, name, jsonName, p, false).forEach(annotation => this.emitLine(annotation));
|
|
620
|
-
const rendered = this.javaType(false, p.type);
|
|
621
|
-
const comma = position === "first" || position === "middle" ? "," : [];
|
|
622
|
-
this.emitLine(rendered, " ", name, comma);
|
|
623
|
-
});
|
|
624
|
-
});
|
|
625
|
-
this.emitLine(") {}");
|
|
626
|
-
this.finishFile();
|
|
627
|
-
}
|
|
628
608
|
unionField(u, t, withIssues = false) {
|
|
629
609
|
const fieldType = this.javaType(true, t, withIssues);
|
|
630
610
|
// FIXME: "Value" should be part of the name.
|
|
@@ -1011,7 +991,7 @@ class JacksonRenderer extends JavaRenderer {
|
|
|
1011
991
|
this.emitCommentLines([
|
|
1012
992
|
"To use this code, add the following Maven dependency to your project:",
|
|
1013
993
|
"",
|
|
1014
|
-
this._options.
|
|
994
|
+
this._options.lombok ? " org.projectlombok : lombok : 1.18.2" : "",
|
|
1015
995
|
" com.fasterxml.jackson.core : jackson-databind : 2.9.0",
|
|
1016
996
|
this._options.dateTimeProvider === "java8"
|
|
1017
997
|
? " com.fasterxml.jackson.datatype : jackson-datatype-jsr310 : 2.9.0"
|