quicktype-core 21.0.15 → 22.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 +3 -2
- package/dist/language/Java.js +26 -6
- package/package.json +2 -2
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">;
|
|
11
12
|
useList: EnumOption<boolean>;
|
|
12
13
|
justTypes: BooleanOption;
|
|
13
|
-
dateTimeProvider: EnumOption<
|
|
14
|
+
dateTimeProvider: EnumOption<"java8" | "legacy">;
|
|
14
15
|
acronymStyle: EnumOption<AcronymStyleOptions>;
|
|
15
16
|
packageName: StringOption;
|
|
16
|
-
lombok: BooleanOption;
|
|
17
17
|
lombokCopyAnnotations: BooleanOption;
|
|
18
18
|
};
|
|
19
19
|
export declare class JavaTargetLanguage extends TargetLanguage {
|
|
@@ -96,6 +96,7 @@ 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;
|
|
99
100
|
protected unionField(u: UnionType, t: Type, withIssues?: boolean): {
|
|
100
101
|
fieldType: Sourcelike;
|
|
101
102
|
fieldName: Sourcelike;
|
package/dist/language/Java.js
CHANGED
|
@@ -13,6 +13,11 @@ 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"),
|
|
16
21
|
useList: new RendererOptions_1.EnumOption("array-type", "Use T[] or List<T>", [
|
|
17
22
|
["array", false],
|
|
18
23
|
["list", true]
|
|
@@ -25,7 +30,6 @@ exports.javaOptions = {
|
|
|
25
30
|
acronymStyle: (0, Acronyms_1.acronymOption)(Acronyms_1.AcronymStyleOptions.Pascal),
|
|
26
31
|
// FIXME: Do this via a configurable named eventually.
|
|
27
32
|
packageName: new RendererOptions_1.StringOption("package", "Generated package name", "NAME", "io.quicktype"),
|
|
28
|
-
lombok: new RendererOptions_1.BooleanOption("lombok", "Use lombok", false, "primary"),
|
|
29
33
|
lombokCopyAnnotations: new RendererOptions_1.BooleanOption("lombok-copy-annotations", "Copy accessor annotations", true, "secondary")
|
|
30
34
|
};
|
|
31
35
|
class JavaTargetLanguage extends TargetLanguage_1.TargetLanguage {
|
|
@@ -34,12 +38,12 @@ class JavaTargetLanguage extends TargetLanguage_1.TargetLanguage {
|
|
|
34
38
|
}
|
|
35
39
|
getOptions() {
|
|
36
40
|
return [
|
|
41
|
+
exports.javaOptions.classStyle,
|
|
37
42
|
exports.javaOptions.useList,
|
|
38
43
|
exports.javaOptions.justTypes,
|
|
39
44
|
exports.javaOptions.dateTimeProvider,
|
|
40
45
|
exports.javaOptions.acronymStyle,
|
|
41
46
|
exports.javaOptions.packageName,
|
|
42
|
-
exports.javaOptions.lombok,
|
|
43
47
|
exports.javaOptions.lombokCopyAnnotations
|
|
44
48
|
];
|
|
45
49
|
}
|
|
@@ -536,7 +540,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
536
540
|
}
|
|
537
541
|
}
|
|
538
542
|
emitClassAttributes(_c, _className) {
|
|
539
|
-
if (this._options.lombok) {
|
|
543
|
+
if (this._options.classStyle === "lombok") {
|
|
540
544
|
this.emitLine("@lombok.Data");
|
|
541
545
|
}
|
|
542
546
|
}
|
|
@@ -577,9 +581,12 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
577
581
|
this.emitFileHeader(className, imports);
|
|
578
582
|
this.emitDescription(this.descriptionForType(c));
|
|
579
583
|
this.emitClassAttributes(c, className);
|
|
584
|
+
if (this._options.classStyle === "java-record") {
|
|
585
|
+
return this.emitClassRecordDefinition(c, className);
|
|
586
|
+
}
|
|
580
587
|
this.emitBlock(["public class ", className], () => {
|
|
581
588
|
this.forEachClassProperty(c, "none", (name, jsonName, p) => {
|
|
582
|
-
if (this._options.lombok && this._options.lombokCopyAnnotations) {
|
|
589
|
+
if (this._options.classStyle === "lombok" && this._options.lombokCopyAnnotations) {
|
|
583
590
|
const getter = this.annotationsForAccessor(c, className, name, jsonName, p, false);
|
|
584
591
|
const setter = this.annotationsForAccessor(c, className, name, jsonName, p, true);
|
|
585
592
|
if (getter.length !== 0) {
|
|
@@ -591,7 +598,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
591
598
|
}
|
|
592
599
|
this.emitLine("private ", this.javaType(false, p.type, true), " ", name, ";");
|
|
593
600
|
});
|
|
594
|
-
if (
|
|
601
|
+
if (this._options.classStyle !== "lombok") {
|
|
595
602
|
this.forEachClassProperty(c, "leading-and-interposing", (name, jsonName, p) => {
|
|
596
603
|
this.emitDescription(this.descriptionForClassProperty(c, jsonName));
|
|
597
604
|
const [getterName, setterName] = (0, Support_1.defined)(this._gettersAndSettersForPropertyName.get(name));
|
|
@@ -605,6 +612,19 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
|
|
|
605
612
|
});
|
|
606
613
|
this.finishFile();
|
|
607
614
|
}
|
|
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
|
+
}
|
|
608
628
|
unionField(u, t, withIssues = false) {
|
|
609
629
|
const fieldType = this.javaType(true, t, withIssues);
|
|
610
630
|
// FIXME: "Value" should be part of the name.
|
|
@@ -991,7 +1011,7 @@ class JacksonRenderer extends JavaRenderer {
|
|
|
991
1011
|
this.emitCommentLines([
|
|
992
1012
|
"To use this code, add the following Maven dependency to your project:",
|
|
993
1013
|
"",
|
|
994
|
-
this._options.lombok ? " org.projectlombok : lombok : 1.18.2" : "",
|
|
1014
|
+
this._options.classStyle === "lombok" ? " org.projectlombok : lombok : 1.18.2" : "",
|
|
995
1015
|
" com.fasterxml.jackson.core : jackson-databind : 2.9.0",
|
|
996
1016
|
this._options.dateTimeProvider === "java8"
|
|
997
1017
|
? " com.fasterxml.jackson.datatype : jackson-datatype-jsr310 : 2.9.0"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quicktype-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "22.0.0",
|
|
4
4
|
"description": "The quicktype engine as a library",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/browser-or-node": "^1.3.0",
|
|
33
33
|
"@types/js-base64": "^3.3.1",
|
|
34
|
-
"@types/node": "18.
|
|
34
|
+
"@types/node": "18.13.0",
|
|
35
35
|
"@types/pako": "^1.0.0",
|
|
36
36
|
"@types/pluralize": "0.0.29",
|
|
37
37
|
"@types/readable-stream": "2.3.15",
|