quicktype-core 22.0.0 → 23.0.1
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 +7 -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
|
}
|
|
@@ -68,6 +64,7 @@ class JavaTargetLanguage extends TargetLanguage_1.TargetLanguage {
|
|
|
68
64
|
}
|
|
69
65
|
exports.JavaTargetLanguage = JavaTargetLanguage;
|
|
70
66
|
const javaKeywords = [
|
|
67
|
+
"_",
|
|
71
68
|
"Object",
|
|
72
69
|
"Class",
|
|
73
70
|
"System",
|
|
@@ -540,7 +537,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
540
537
|
}
|
|
541
538
|
}
|
|
542
539
|
emitClassAttributes(_c, _className) {
|
|
543
|
-
if (this._options.
|
|
540
|
+
if (this._options.lombok) {
|
|
544
541
|
this.emitLine("@lombok.Data");
|
|
545
542
|
}
|
|
546
543
|
}
|
|
@@ -581,12 +578,9 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
581
578
|
this.emitFileHeader(className, imports);
|
|
582
579
|
this.emitDescription(this.descriptionForType(c));
|
|
583
580
|
this.emitClassAttributes(c, className);
|
|
584
|
-
if (this._options.classStyle === "java-record") {
|
|
585
|
-
return this.emitClassRecordDefinition(c, className);
|
|
586
|
-
}
|
|
587
581
|
this.emitBlock(["public class ", className], () => {
|
|
588
582
|
this.forEachClassProperty(c, "none", (name, jsonName, p) => {
|
|
589
|
-
if (this._options.
|
|
583
|
+
if (this._options.lombok && this._options.lombokCopyAnnotations) {
|
|
590
584
|
const getter = this.annotationsForAccessor(c, className, name, jsonName, p, false);
|
|
591
585
|
const setter = this.annotationsForAccessor(c, className, name, jsonName, p, true);
|
|
592
586
|
if (getter.length !== 0) {
|
|
@@ -598,7 +592,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
598
592
|
}
|
|
599
593
|
this.emitLine("private ", this.javaType(false, p.type, true), " ", name, ";");
|
|
600
594
|
});
|
|
601
|
-
if (this._options.
|
|
595
|
+
if (!this._options.lombok) {
|
|
602
596
|
this.forEachClassProperty(c, "leading-and-interposing", (name, jsonName, p) => {
|
|
603
597
|
this.emitDescription(this.descriptionForClassProperty(c, jsonName));
|
|
604
598
|
const [getterName, setterName] = (0, Support_1.defined)(this._gettersAndSettersForPropertyName.get(name));
|
|
@@ -612,19 +606,6 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
612
606
|
});
|
|
613
607
|
this.finishFile();
|
|
614
608
|
}
|
|
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
609
|
unionField(u, t, withIssues = false) {
|
|
629
610
|
const fieldType = this.javaType(true, t, withIssues);
|
|
630
611
|
// FIXME: "Value" should be part of the name.
|
|
@@ -1011,7 +992,7 @@ class JacksonRenderer extends JavaRenderer {
|
|
|
1011
992
|
this.emitCommentLines([
|
|
1012
993
|
"To use this code, add the following Maven dependency to your project:",
|
|
1013
994
|
"",
|
|
1014
|
-
this._options.
|
|
995
|
+
this._options.lombok ? " org.projectlombok : lombok : 1.18.2" : "",
|
|
1015
996
|
" com.fasterxml.jackson.core : jackson-databind : 2.9.0",
|
|
1016
997
|
this._options.dateTimeProvider === "java8"
|
|
1017
998
|
? " com.fasterxml.jackson.datatype : jackson-datatype-jsr310 : 2.9.0"
|