quicktype 16.0.38 → 16.0.39

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.
@@ -13,7 +13,10 @@ const Source_1 = require("../Source");
13
13
  const Annotation_1 = require("../Annotation");
14
14
  exports.elmOptions = {
15
15
  justTypes: new RendererOptions_1.BooleanOption("just-types", "Plain types only", false),
16
- useList: new RendererOptions_1.EnumOption("array-type", "Use Array or List", [["array", false], ["list", true]]),
16
+ useList: new RendererOptions_1.EnumOption("array-type", "Use Array or List", [
17
+ ["array", false],
18
+ ["list", true]
19
+ ]),
17
20
  // FIXME: Do this via a configurable named eventually.
18
21
  moduleName: new RendererOptions_1.StringOption("module", "Generated module name", "NAME", "QuickType")
19
22
  };
@@ -14,7 +14,7 @@ exports.goOptions = {
14
14
  justTypes: new RendererOptions_1.BooleanOption("just-types", "Plain types only", false),
15
15
  justTypesAndPackage: new RendererOptions_1.BooleanOption("just-types-and-package", "Plain types with package only", false),
16
16
  packageName: new RendererOptions_1.StringOption("package", "Generated package name", "NAME", "main"),
17
- multiFileOutput: new RendererOptions_1.BooleanOption("multi-file-output", "Renders each top-level object in its own Go file", false),
17
+ multiFileOutput: new RendererOptions_1.BooleanOption("multi-file-output", "Renders each top-level object in its own Go file", false)
18
18
  };
19
19
  class GoTargetLanguage extends TargetLanguage_1.TargetLanguage {
20
20
  constructor() {
@@ -77,7 +77,7 @@ class GoRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
77
77
  return true;
78
78
  }
79
79
  makeTopLevelDependencyNames(_, topLevelName) {
80
- const unmarshalName = new Naming_1.DependencyName(namingFunction, topLevelName.order, (lookup) => `unmarshal_${lookup(topLevelName)}`);
80
+ const unmarshalName = new Naming_1.DependencyName(namingFunction, topLevelName.order, lookup => `unmarshal_${lookup(topLevelName)}`);
81
81
  this._topLevelUnmarshalNames.set(topLevelName, unmarshalName);
82
82
  return [unmarshalName];
83
83
  }
@@ -130,7 +130,7 @@ class GoRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
130
130
  return this.goType(t, true);
131
131
  }
132
132
  goType(t, withIssues = false) {
133
- return TypeUtils_1.matchType(t, (_anyType) => Source_1.maybeAnnotated(withIssues, Annotation_1.anyTypeIssueAnnotation, "interface{}"), (_nullType) => Source_1.maybeAnnotated(withIssues, Annotation_1.nullTypeIssueAnnotation, "interface{}"), (_boolType) => "bool", (_integerType) => "int64", (_doubleType) => "float64", (_stringType) => "string", (arrayType) => ["[]", this.goType(arrayType.items, withIssues)], (classType) => this.nameForNamedType(classType), (mapType) => {
133
+ return TypeUtils_1.matchType(t, _anyType => Source_1.maybeAnnotated(withIssues, Annotation_1.anyTypeIssueAnnotation, "interface{}"), _nullType => Source_1.maybeAnnotated(withIssues, Annotation_1.nullTypeIssueAnnotation, "interface{}"), _boolType => "bool", _integerType => "int64", _doubleType => "float64", _stringType => "string", arrayType => ["[]", this.goType(arrayType.items, withIssues)], classType => this.nameForNamedType(classType), mapType => {
134
134
  let valueSource;
135
135
  const v = mapType.values;
136
136
  if (v instanceof Type_1.UnionType && TypeUtils_1.nullableFromUnion(v) === null) {
@@ -140,7 +140,7 @@ class GoRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
140
140
  valueSource = this.goType(v, withIssues);
141
141
  }
142
142
  return ["map[string]", valueSource];
143
- }, (enumType) => this.nameForNamedType(enumType), (unionType) => {
143
+ }, enumType => this.nameForNamedType(enumType), unionType => {
144
144
  const nullable = TypeUtils_1.nullableFromUnion(unionType);
145
145
  if (nullable !== null)
146
146
  return this.nullableGoType(nullable, withIssues);
@@ -189,7 +189,11 @@ class GoRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
189
189
  const goType = this.propertyGoType(p);
190
190
  const omitEmpty = canOmitEmpty(p) ? ",omitempty" : [];
191
191
  docStrings.forEach(doc => columns.push([doc]));
192
- columns.push([[name, " "], [goType, " "], ['`json:"', Strings_1.stringEscape(jsonName), omitEmpty, '"`']]);
192
+ columns.push([
193
+ [name, " "],
194
+ [goType, " "],
195
+ ['`json:"', Strings_1.stringEscape(jsonName), omitEmpty, '"`']
196
+ ]);
193
197
  });
194
198
  this.emitDescription(this.descriptionForType(c));
195
199
  this.emitStruct(className, columns);
@@ -251,7 +255,7 @@ class GoRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
251
255
  ifMember("class", undefined, (_1, _2, goType) => {
252
256
  this.emitLine("var c ", goType);
253
257
  });
254
- const args = makeArgs((fn) => ["&x.", fn], (isClass, fn) => {
258
+ const args = makeArgs(fn => ["&x.", fn], (isClass, fn) => {
255
259
  if (isClass) {
256
260
  return "true, &c";
257
261
  }
@@ -272,7 +276,7 @@ class GoRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
272
276
  });
273
277
  this.ensureBlankLine();
274
278
  this.emitFunc(["(x *", unionName, ") MarshalJSON() ([]byte, error)"], () => {
275
- const args = makeArgs((fn) => ["x.", fn], (_, fn) => ["x.", fn, " != nil, x.", fn]);
279
+ const args = makeArgs(fn => ["x.", fn], (_, fn) => ["x.", fn, " != nil, x.", fn]);
276
280
  this.emitLine("return marshalUnion(", args, ")");
277
281
  });
278
282
  this.endFile();
@@ -439,7 +443,7 @@ func marshalUnion(pi *int64, pf *float64, pb *bool, ps *string, haveArray bool,
439
443
  this.leadingComments === undefined) {
440
444
  this.emitSingleFileHeaderComments();
441
445
  }
442
- this.forEachTopLevel("leading-and-interposing", (t, name) => this.emitTopLevel(t, name), (t) => !(this._options.justTypes || this._options.justTypesAndPackage) ||
446
+ this.forEachTopLevel("leading-and-interposing", (t, name) => this.emitTopLevel(t, name), t => !(this._options.justTypes || this._options.justTypesAndPackage) ||
443
447
  this.namedTypeToNameForTopLevel(t) === undefined);
444
448
  this.forEachObject("leading-and-interposing", (c, className) => this.emitClass(c, className));
445
449
  this.forEachEnum("leading-and-interposing", (u, enumName) => this.emitEnum(u, enumName));
@@ -12,9 +12,9 @@ exports.haskellOptions = {
12
12
  justTypes: new RendererOptions_1.BooleanOption("just-types", "Plain types only", false),
13
13
  useList: new RendererOptions_1.EnumOption("array-type", "Use Array or List", [
14
14
  ["array", false],
15
- ["list", true],
15
+ ["list", true]
16
16
  ]),
17
- moduleName: new RendererOptions_1.StringOption("module", "Generated module name", "NAME", "QuickType"),
17
+ moduleName: new RendererOptions_1.StringOption("module", "Generated module name", "NAME", "QuickType")
18
18
  };
19
19
  class HaskellTargetLanguage extends TargetLanguage_1.TargetLanguage {
20
20
  constructor() {
@@ -86,15 +86,15 @@ const forbiddenNames = [
86
86
  "Object",
87
87
  "Result",
88
88
  "Series",
89
- "Error",
89
+ "Error"
90
90
  ];
91
- const legalizeName = Strings_1.legalizeCharacters((cp) => Strings_1.isAscii(cp) && Strings_1.isLetterOrUnderscoreOrDigit(cp));
91
+ const legalizeName = Strings_1.legalizeCharacters(cp => Strings_1.isAscii(cp) && Strings_1.isLetterOrUnderscoreOrDigit(cp));
92
92
  function haskellNameStyle(original, upper) {
93
93
  const words = Strings_1.splitIntoWords(original);
94
94
  return Strings_1.combineWords(words, legalizeName, upper ? Strings_1.firstUpperWordStyle : Strings_1.allLowerWordStyle, Strings_1.firstUpperWordStyle, upper ? Strings_1.allUpperWordStyle : Strings_1.allLowerWordStyle, Strings_1.allUpperWordStyle, "", Strings_1.isLetterOrUnderscore);
95
95
  }
96
- const upperNamingFunction = Naming_1.funPrefixNamer("upper", (n) => haskellNameStyle(n, true));
97
- const lowerNamingFunction = Naming_1.funPrefixNamer("lower", (n) => haskellNameStyle(n, false));
96
+ const upperNamingFunction = Naming_1.funPrefixNamer("upper", n => haskellNameStyle(n, true));
97
+ const lowerNamingFunction = Naming_1.funPrefixNamer("lower", n => haskellNameStyle(n, false));
98
98
  class HaskellRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
99
99
  constructor(targetLanguage, renderContext, _options) {
100
100
  super(targetLanguage, renderContext);
@@ -140,12 +140,12 @@ class HaskellRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
140
140
  }
141
141
  }
142
142
  haskellType(t, noOptional = false) {
143
- return TypeUtils_1.matchType(t, (_anyType) => Source_1.multiWord(" ", "Maybe", "Text"), (_nullType) => Source_1.multiWord(" ", "Maybe", "Text"), (_boolType) => Source_1.singleWord("Bool"), (_integerType) => Source_1.singleWord("Int"), (_doubleType) => Source_1.singleWord("Float"), (_stringType) => Source_1.singleWord("Text"), (arrayType) => {
143
+ return TypeUtils_1.matchType(t, _anyType => Source_1.multiWord(" ", "Maybe", "Text"), _nullType => Source_1.multiWord(" ", "Maybe", "Text"), _boolType => Source_1.singleWord("Bool"), _integerType => Source_1.singleWord("Int"), _doubleType => Source_1.singleWord("Float"), _stringType => Source_1.singleWord("Text"), arrayType => {
144
144
  if (this._options.useList) {
145
145
  return Source_1.multiWord("", "[", Source_1.parenIfNeeded(this.haskellType(arrayType.items)), "]");
146
146
  }
147
147
  return Source_1.multiWord(" ", "Vector", Source_1.parenIfNeeded(this.haskellType(arrayType.items)));
148
- }, (classType) => Source_1.singleWord(this.nameForNamedType(classType)), (mapType) => Source_1.multiWord(" ", "HashMap Text", Source_1.parenIfNeeded(this.haskellType(mapType.values))), (enumType) => Source_1.singleWord(this.nameForNamedType(enumType)), (unionType) => {
148
+ }, classType => Source_1.singleWord(this.nameForNamedType(classType)), mapType => Source_1.multiWord(" ", "HashMap Text", Source_1.parenIfNeeded(this.haskellType(mapType.values))), enumType => Source_1.singleWord(this.nameForNamedType(enumType)), unionType => {
149
149
  const nullable = TypeUtils_1.nullableFromUnion(unionType);
150
150
  if (nullable !== null) {
151
151
  const nullableType = this.haskellType(nullable);
@@ -204,7 +204,7 @@ class HaskellRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
204
204
  this.emitLine("data ", enumName);
205
205
  this.indent(() => {
206
206
  let onFirst = true;
207
- this.forEachEnumCase(e, "none", (name) => {
207
+ this.forEachEnumCase(e, "none", name => {
208
208
  const equalsOrPipe = onFirst ? "=" : "|";
209
209
  this.emitLine(equalsOrPipe, " ", name, enumName);
210
210
  onFirst = false;
@@ -243,7 +243,7 @@ class HaskellRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
243
243
  }
244
244
  emitClassEncoderInstance(c, className) {
245
245
  let classProperties = [];
246
- this.forEachClassProperty(c, "none", (name) => {
246
+ this.forEachClassProperty(c, "none", name => {
247
247
  classProperties.push(" ");
248
248
  classProperties.push(name);
249
249
  classProperties.push(className);
@@ -259,7 +259,7 @@ class HaskellRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
259
259
  this.emitLine("object");
260
260
  let onFirst = true;
261
261
  this.forEachClassProperty(c, "none", (name, jsonName) => {
262
- this.emitLine(onFirst ? "[ " : ", ", "\"", Strings_1.stringEscape(jsonName), "\" .= ", name, className);
262
+ this.emitLine(onFirst ? "[ " : ", ", '"', Strings_1.stringEscape(jsonName), '" .= ', name, className);
263
263
  onFirst = false;
264
264
  });
265
265
  if (onFirst) {
@@ -282,7 +282,7 @@ class HaskellRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
282
282
  let onFirst = true;
283
283
  this.forEachClassProperty(c, "none", (_, jsonName, p) => {
284
284
  const operator = p.isOptional ? ".:?" : ".:";
285
- this.emitLine(onFirst ? "<$> " : "<*> ", "v ", operator, " \"", Strings_1.stringEscape(jsonName), "\"");
285
+ this.emitLine(onFirst ? "<$> " : "<*> ", "v ", operator, ' "', Strings_1.stringEscape(jsonName), '"');
286
286
  onFirst = false;
287
287
  });
288
288
  });
@@ -298,19 +298,19 @@ class HaskellRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
298
298
  this.emitLine("instance ToJSON ", enumName, " where");
299
299
  this.indent(() => {
300
300
  this.forEachEnumCase(e, "none", (name, jsonName) => {
301
- this.emitLine("toJSON ", name, enumName, " = \"", Strings_1.stringEscape(jsonName), "\"");
301
+ this.emitLine("toJSON ", name, enumName, ' = "', Strings_1.stringEscape(jsonName), '"');
302
302
  });
303
303
  });
304
304
  }
305
305
  emitEnumDecoderInstance(e, enumName) {
306
306
  this.emitLine("instance FromJSON ", enumName, " where");
307
307
  this.indent(() => {
308
- this.emitLine("parseJSON = withText \"", enumName, "\" parseText");
308
+ this.emitLine('parseJSON = withText "', enumName, '" parseText');
309
309
  this.indent(() => {
310
310
  this.emitLine("where");
311
311
  this.indent(() => {
312
312
  this.forEachEnumCase(e, "none", (name, jsonName) => {
313
- this.emitLine("parseText \"", Strings_1.stringEscape(jsonName), "\" = return ", name, enumName);
313
+ this.emitLine('parseText "', Strings_1.stringEscape(jsonName), '" = return ', name, enumName);
314
314
  });
315
315
  });
316
316
  });
@@ -14,7 +14,7 @@ const TypeUtils_1 = require("../TypeUtils");
14
14
  exports.javaOptions = {
15
15
  useList: new RendererOptions_1.EnumOption("array-type", "Use T[] or List<T>", [
16
16
  ["array", false],
17
- ["list", true],
17
+ ["list", true]
18
18
  ], "array"),
19
19
  justTypes: new RendererOptions_1.BooleanOption("just-types", "Plain types only", false),
20
20
  dateTimeProvider: new RendererOptions_1.EnumOption("datetime-provider", "Date time provider type", [
@@ -25,7 +25,7 @@ exports.javaOptions = {
25
25
  // FIXME: Do this via a configurable named eventually.
26
26
  packageName: new RendererOptions_1.StringOption("package", "Generated package name", "NAME", "io.quicktype"),
27
27
  lombok: new RendererOptions_1.BooleanOption("lombok", "Use lombok", false, "primary"),
28
- lombokCopyAnnotations: new RendererOptions_1.BooleanOption("lombok-copy-annotations", "Copy accessor annotations", true, "secondary"),
28
+ lombokCopyAnnotations: new RendererOptions_1.BooleanOption("lombok-copy-annotations", "Copy accessor annotations", true, "secondary")
29
29
  };
30
30
  class JavaTargetLanguage extends TargetLanguage_1.TargetLanguage {
31
31
  constructor() {
@@ -39,7 +39,7 @@ class JavaTargetLanguage extends TargetLanguage_1.TargetLanguage {
39
39
  exports.javaOptions.acronymStyle,
40
40
  exports.javaOptions.packageName,
41
41
  exports.javaOptions.lombok,
42
- exports.javaOptions.lombokCopyAnnotations,
42
+ exports.javaOptions.lombokCopyAnnotations
43
43
  ];
44
44
  }
45
45
  get supportsUnionsWithBothNumberTypes() {
@@ -128,7 +128,7 @@ const javaKeywords = [
128
128
  "while",
129
129
  "null",
130
130
  "false",
131
- "true",
131
+ "true"
132
132
  ];
133
133
  exports.stringEscape = Strings_1.utf16ConcatMap(Strings_1.escapeNonPrintableMapper(Strings_1.isAscii, Strings_1.standardUnicodeHexEscape));
134
134
  function isStartCharacter(codePoint) {
@@ -242,17 +242,11 @@ class Java8DateTimeProvider extends JavaDateTimeProvider {
242
242
  class JavaLegacyDateTimeProvider extends JavaDateTimeProvider {
243
243
  constructor() {
244
244
  super(...arguments);
245
- this.keywords = [
246
- "SimpleDateFormat",
247
- "Date",
248
- ];
245
+ this.keywords = ["SimpleDateFormat", "Date"];
249
246
  this.dateTimeImports = ["java.util.Date"];
250
247
  this.dateImports = ["java.util.Date"];
251
248
  this.timeImports = ["java.util.Date"];
252
- this.converterImports = [
253
- "java.util.Date",
254
- "java.text.SimpleDateFormat",
255
- ];
249
+ this.converterImports = ["java.util.Date", "java.text.SimpleDateFormat"];
256
250
  this.dateTimeType = "Date";
257
251
  this.dateType = "Date";
258
252
  this.timeType = "Date";
@@ -266,10 +260,10 @@ class JavaLegacyDateTimeProvider extends JavaDateTimeProvider {
266
260
  this._renderer.ensureBlankLine();
267
261
  this._renderer.emitLine("private static final String[] DATE_TIME_FORMATS = {");
268
262
  this._renderer.indent(() => this._renderer.indent(() => {
269
- this._renderer.emitLine('"yyyy-MM-dd\'T\'HH:mm:ss.SX",');
270
- this._renderer.emitLine('"yyyy-MM-dd\'T\'HH:mm:ss.S",');
271
- this._renderer.emitLine('"yyyy-MM-dd\'T\'HH:mm:ssX",');
272
- this._renderer.emitLine('"yyyy-MM-dd\'T\'HH:mm:ss",');
263
+ this._renderer.emitLine("\"yyyy-MM-dd'T'HH:mm:ss.SX\",");
264
+ this._renderer.emitLine("\"yyyy-MM-dd'T'HH:mm:ss.S\",");
265
+ this._renderer.emitLine("\"yyyy-MM-dd'T'HH:mm:ssX\",");
266
+ this._renderer.emitLine("\"yyyy-MM-dd'T'HH:mm:ss\",");
273
267
  this._renderer.emitLine('"yyyy-MM-dd HH:mm:ss.SX",');
274
268
  this._renderer.emitLine('"yyyy-MM-dd HH:mm:ss.S",');
275
269
  this._renderer.emitLine('"yyyy-MM-dd HH:mm:ssX",');
@@ -292,7 +286,7 @@ class JavaLegacyDateTimeProvider extends JavaDateTimeProvider {
292
286
  });
293
287
  this._renderer.ensureBlankLine();
294
288
  this._renderer.emitBlock("public static String serializeDateTime(Date datetime)", () => {
295
- this._renderer.emitLine('return new SimpleDateFormat("yyyy-MM-dd\'T\'hh:mm:ssZ").format(datetime);');
289
+ this._renderer.emitLine("return new SimpleDateFormat(\"yyyy-MM-dd'T'hh:mm:ssZ\").format(datetime);");
296
290
  });
297
291
  this._renderer.ensureBlankLine();
298
292
  this._renderer.emitBlock("public static String serializeDate(Date datetime)", () => {
@@ -341,7 +335,12 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
341
335
  }
342
336
  }
343
337
  forbiddenNamesForGlobalNamespace() {
344
- const keywords = [...javaKeywords, ...this._converterKeywords, this._converterClassname, ...this._dateTimeProvider.keywords];
338
+ const keywords = [
339
+ ...javaKeywords,
340
+ ...this._converterKeywords,
341
+ this._converterClassname,
342
+ ...this._dateTimeProvider.keywords
343
+ ];
345
344
  return keywords;
346
345
  }
347
346
  forbiddenForObjectProperties(_c, _className) {
@@ -369,8 +368,8 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
369
368
  return TypeUtils_1.directlyReachableSingleNamedType(type);
370
369
  }
371
370
  makeNamesForPropertyGetterAndSetter(_c, _className, _p, _jsonName, name) {
372
- const getterName = new Naming_1.DependencyName(this.getNameStyling("propertyNamingFunction"), name.order, (lookup) => `get_${lookup(name)}`);
373
- const setterName = new Naming_1.DependencyName(this.getNameStyling("propertyNamingFunction"), name.order, (lookup) => `set_${lookup(name)}`);
371
+ const getterName = new Naming_1.DependencyName(this.getNameStyling("propertyNamingFunction"), name.order, lookup => `get_${lookup(name)}`);
372
+ const setterName = new Naming_1.DependencyName(this.getNameStyling("propertyNamingFunction"), name.order, lookup => `set_${lookup(name)}`);
374
373
  return [getterName, setterName];
375
374
  }
376
375
  makePropertyDependencyNames(c, className, p, jsonName, name) {
@@ -380,9 +379,9 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
380
379
  }
381
380
  getNameStyling(convention) {
382
381
  const styling = {
383
- typeNamingFunction: Naming_1.funPrefixNamer("types", (n) => javaNameStyle(true, false, n, Acronyms_1.acronymStyle(this._options.acronymStyle))),
384
- propertyNamingFunction: Naming_1.funPrefixNamer("properties", (n) => javaNameStyle(false, false, n, Acronyms_1.acronymStyle(this._options.acronymStyle))),
385
- enumCaseNamingFunction: Naming_1.funPrefixNamer("enum-cases", (n) => javaNameStyle(true, true, n, Acronyms_1.acronymStyle(this._options.acronymStyle))),
382
+ typeNamingFunction: Naming_1.funPrefixNamer("types", n => javaNameStyle(true, false, n, Acronyms_1.acronymStyle(this._options.acronymStyle))),
383
+ propertyNamingFunction: Naming_1.funPrefixNamer("properties", n => javaNameStyle(false, false, n, Acronyms_1.acronymStyle(this._options.acronymStyle))),
384
+ enumCaseNamingFunction: Naming_1.funPrefixNamer("enum-cases", n => javaNameStyle(true, true, n, Acronyms_1.acronymStyle(this._options.acronymStyle)))
386
385
  };
387
386
  return styling[convention];
388
387
  }
@@ -457,19 +456,19 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
457
456
  this.emitTryCatch(f, () => this.emitLine("// Ignored"));
458
457
  }
459
458
  javaType(reference, t, withIssues = false) {
460
- return TypeUtils_1.matchType(t, (_anyType) => Source_1.maybeAnnotated(withIssues, Annotation_1.anyTypeIssueAnnotation, "Object"), (_nullType) => Source_1.maybeAnnotated(withIssues, Annotation_1.nullTypeIssueAnnotation, "Object"), (_boolType) => (reference ? "Boolean" : "boolean"), (_integerType) => (reference ? "Long" : "long"), (_doubleType) => (reference ? "Double" : "double"), (_stringType) => "String", (arrayType) => {
459
+ return TypeUtils_1.matchType(t, _anyType => Source_1.maybeAnnotated(withIssues, Annotation_1.anyTypeIssueAnnotation, "Object"), _nullType => Source_1.maybeAnnotated(withIssues, Annotation_1.nullTypeIssueAnnotation, "Object"), _boolType => (reference ? "Boolean" : "boolean"), _integerType => (reference ? "Long" : "long"), _doubleType => (reference ? "Double" : "double"), _stringType => "String", arrayType => {
461
460
  if (this._options.useList) {
462
461
  return ["List<", this.javaType(true, arrayType.items, withIssues), ">"];
463
462
  }
464
463
  else {
465
464
  return [this.javaType(false, arrayType.items, withIssues), "[]"];
466
465
  }
467
- }, (classType) => this.nameForNamedType(classType), (mapType) => ["Map<String, ", this.javaType(true, mapType.values, withIssues), ">"], (enumType) => this.nameForNamedType(enumType), (unionType) => {
466
+ }, classType => this.nameForNamedType(classType), mapType => ["Map<String, ", this.javaType(true, mapType.values, withIssues), ">"], enumType => this.nameForNamedType(enumType), unionType => {
468
467
  const nullable = TypeUtils_1.nullableFromUnion(unionType);
469
468
  if (nullable !== null)
470
469
  return this.javaType(true, nullable, withIssues);
471
470
  return this.nameForNamedType(unionType);
472
- }, (transformedStringType) => {
471
+ }, transformedStringType => {
473
472
  if (transformedStringType.kind === "time") {
474
473
  return this._dateTimeProvider.timeType;
475
474
  }
@@ -486,18 +485,18 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
486
485
  });
487
486
  }
488
487
  javaImport(t) {
489
- return TypeUtils_1.matchType(t, (_anyType) => [], (_nullType) => [], (_boolType) => [], (_integerType) => [], (_doubleType) => [], (_stringType) => [], (arrayType) => {
488
+ return TypeUtils_1.matchType(t, _anyType => [], _nullType => [], _boolType => [], _integerType => [], _doubleType => [], _stringType => [], arrayType => {
490
489
  if (this._options.useList) {
491
490
  return [...this.javaImport(arrayType.items), "java.util.List"];
492
491
  }
493
492
  else {
494
493
  return [...this.javaImport(arrayType.items)];
495
494
  }
496
- }, (_classType) => [], (mapType) => [...this.javaImport(mapType.values), "java.util.Map"], (_enumType) => [], (unionType) => {
495
+ }, _classType => [], mapType => [...this.javaImport(mapType.values), "java.util.Map"], _enumType => [], unionType => {
497
496
  const imports = [];
498
- unionType.members.forEach((type) => this.javaImport(type).forEach((imp) => imports.push(imp)));
497
+ unionType.members.forEach(type => this.javaImport(type).forEach(imp => imports.push(imp)));
499
498
  return imports;
500
- }, (transformedStringType) => {
499
+ }, transformedStringType => {
501
500
  if (transformedStringType.kind === "time") {
502
501
  return this._dateTimeProvider.timeImports;
503
502
  }
@@ -558,7 +557,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
558
557
  importsForClass(c) {
559
558
  const imports = [];
560
559
  this.forEachClassProperty(c, "none", (_name, _jsonName, p) => {
561
- this.javaImport(p.type).forEach((imp) => imports.push(imp));
560
+ this.javaImport(p.type).forEach(imp => imports.push(imp));
562
561
  });
563
562
  imports.sort();
564
563
  return [...new Set(imports)];
@@ -567,7 +566,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
567
566
  const imports = [];
568
567
  const [, nonNulls] = TypeUtils_1.removeNullFromUnion(u);
569
568
  this.forEachUnionMember(u, nonNulls, "none", null, (_fieldName, t) => {
570
- this.javaImport(t).forEach((imp) => imports.push(imp));
569
+ this.javaImport(t).forEach(imp => imports.push(imp));
571
570
  });
572
571
  imports.sort();
573
572
  return [...new Set(imports)];
@@ -596,11 +595,9 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
596
595
  this.emitDescription(this.descriptionForClassProperty(c, jsonName));
597
596
  const [getterName, setterName] = Support_1.defined(this._gettersAndSettersForPropertyName.get(name));
598
597
  const rendered = this.javaType(false, p.type);
599
- this.annotationsForAccessor(c, className, name, jsonName, p, false)
600
- .forEach(annotation => this.emitLine(annotation));
598
+ this.annotationsForAccessor(c, className, name, jsonName, p, false).forEach(annotation => this.emitLine(annotation));
601
599
  this.emitLine("public ", rendered, " ", getterName, "() { return ", name, "; }");
602
- this.annotationsForAccessor(c, className, name, jsonName, p, true)
603
- .forEach(annotation => this.emitLine(annotation));
600
+ this.annotationsForAccessor(c, className, name, jsonName, p, true).forEach(annotation => this.emitLine(annotation));
604
601
  this.emitLine("public void ", setterName, "(", rendered, " value) { this.", name, " = value; }");
605
602
  });
606
603
  }
@@ -644,7 +641,7 @@ class JavaRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
644
641
  this.emitFileHeader(enumName, this.importsForType(e));
645
642
  this.emitDescription(this.descriptionForType(e));
646
643
  const caseNames = [];
647
- this.forEachEnumCase(e, "none", (name) => {
644
+ this.forEachEnumCase(e, "none", name => {
648
645
  if (caseNames.length > 0)
649
646
  caseNames.push(", ");
650
647
  caseNames.push(name);
@@ -692,7 +689,7 @@ class JacksonRenderer extends JavaRenderer {
692
689
  "JsonParser",
693
690
  "JsonProcessingException",
694
691
  "DeserializationContext",
695
- "SerializerProvider",
692
+ "SerializerProvider"
696
693
  ];
697
694
  }
698
695
  emitClassAttributes(c, _className) {
@@ -702,9 +699,7 @@ class JacksonRenderer extends JavaRenderer {
702
699
  }
703
700
  annotationsForAccessor(_c, _className, _propertyName, jsonName, p, _isSetter) {
704
701
  const superAnnotations = super.annotationsForAccessor(_c, _className, _propertyName, jsonName, p, _isSetter);
705
- const annotations = [
706
- ('@JsonProperty("' + exports.stringEscape(jsonName) + '")')
707
- ];
702
+ const annotations = ['@JsonProperty("' + exports.stringEscape(jsonName) + '")'];
708
703
  switch (p.type.kind) {
709
704
  case "date-time":
710
705
  this._dateTimeProvider.dateTimeJacksonAnnotations.forEach(annotation => annotations.push(annotation));
@@ -780,7 +775,7 @@ class JacksonRenderer extends JavaRenderer {
780
775
  if (this._options.useList && t instanceof Type_1.ArrayType) {
781
776
  this.emitLine("value.", fieldName, " = jsonParser.readValueAs(new TypeReference<", rendered, ">() {});");
782
777
  }
783
- else if (stringBasedObjects.some((stringBasedTypeKind) => t.kind === stringBasedTypeKind)) {
778
+ else if (stringBasedObjects.some(stringBasedTypeKind => t.kind === stringBasedTypeKind)) {
784
779
  emitDeserializerCodeForStringObjects(fieldName, t.kind, variableFieldName);
785
780
  }
786
781
  else if (t.kind === "string") {
@@ -811,7 +806,7 @@ class JacksonRenderer extends JavaRenderer {
811
806
  const emitStringDeserializer = () => {
812
807
  const enumType = u.findMember("enum");
813
808
  const stringType = u.findMember("string");
814
- if (stringBasedObjects.every((kind) => u.findMember(kind) === undefined) &&
809
+ if (stringBasedObjects.every(kind => u.findMember(kind) === undefined) &&
815
810
  stringType === undefined &&
816
811
  enumType === undefined)
817
812
  return;
@@ -820,7 +815,7 @@ class JacksonRenderer extends JavaRenderer {
820
815
  this.indent(() => {
821
816
  const fromVariable = "string";
822
817
  this.emitLine("String " + fromVariable + " = jsonParser.readValueAs(String.class);");
823
- stringBasedObjects.forEach((kind) => {
818
+ stringBasedObjects.forEach(kind => {
824
819
  const type = u.findMember(kind);
825
820
  if (type !== undefined) {
826
821
  this.emitIgnoredTryCatchBlock(() => {
@@ -879,7 +874,7 @@ class JacksonRenderer extends JavaRenderer {
879
874
  const emitSerializeType = (t) => {
880
875
  let { fieldName } = this.unionField(u, t, true);
881
876
  this.emitBlock(["if (obj.", fieldName, " != null)"], () => {
882
- if (customObjectSerializer.some((customSerializerType) => t.kind === customSerializerType)) {
877
+ if (customObjectSerializer.some(customSerializerType => t.kind === customSerializerType)) {
883
878
  this.emitLine("jsonGenerator.writeObject(", serializerCodeForType(t, ["obj.", fieldName]), ");");
884
879
  }
885
880
  else {
@@ -895,7 +890,7 @@ class JacksonRenderer extends JavaRenderer {
895
890
  this.emitBlock([
896
891
  "public ",
897
892
  unionName,
898
- " deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException",
893
+ " deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException"
899
894
  ], () => {
900
895
  this.emitLine(unionName, " value = new ", unionName, "();");
901
896
  this.emitLine("switch (jsonParser.currentToken()) {");
@@ -918,7 +913,7 @@ class JacksonRenderer extends JavaRenderer {
918
913
  this.emitBlock([
919
914
  "public void serialize(",
920
915
  unionName,
921
- " obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException",
916
+ " obj, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException"
922
917
  ], () => {
923
918
  for (const t of nonNulls) {
924
919
  emitSerializeType(t);
@@ -997,14 +992,16 @@ class JacksonRenderer extends JavaRenderer {
997
992
  "",
998
993
  this._options.lombok ? " org.projectlombok : lombok : 1.18.2" : "",
999
994
  " com.fasterxml.jackson.core : jackson-databind : 2.9.0",
1000
- this._options.dateTimeProvider === "java8" ? " com.fasterxml.jackson.datatype : jackson-datatype-jsr310 : 2.9.0" : "",
995
+ this._options.dateTimeProvider === "java8"
996
+ ? " com.fasterxml.jackson.datatype : jackson-datatype-jsr310 : 2.9.0"
997
+ : "",
1001
998
  "",
1002
999
  "Import this package:",
1003
- "",
1000
+ ""
1004
1001
  ]);
1005
1002
  this.emitLine("// import ", this._options.packageName, ".Converter;");
1006
- this.emitMultiline(`//
1007
- // Then you can deserialize a JSON string with
1003
+ this.emitMultiline(`//
1004
+ // Then you can deserialize a JSON string with
1008
1005
  //`);
1009
1006
  this.forEachTopLevel("none", (t, name) => {
1010
1007
  this.emitLine("// ", this.javaType(false, t), " data = Converter.", this.decoderName(name), "(jsonString);");
@@ -1016,7 +1013,7 @@ class JacksonRenderer extends JavaRenderer {
1016
1013
  "com.fasterxml.jackson.databind.module.SimpleModule",
1017
1014
  "com.fasterxml.jackson.core.JsonParser",
1018
1015
  "com.fasterxml.jackson.core.JsonProcessingException",
1019
- "java.util.*",
1016
+ "java.util.*"
1020
1017
  ].concat(this._dateTimeProvider.converterImports);
1021
1018
  this.emitPackageAndImports(imports);
1022
1019
  this.ensureBlankLine();
@@ -1031,7 +1028,7 @@ class JacksonRenderer extends JavaRenderer {
1031
1028
  topLevelTypeRendered,
1032
1029
  " ",
1033
1030
  this.decoderName(topLevelName),
1034
- "(String json) throws IOException",
1031
+ "(String json) throws IOException"
1035
1032
  ], () => {
1036
1033
  this.emitLine("return ", this.readerGetterName(topLevelName), "().readValue(json);");
1037
1034
  });
@@ -1041,7 +1038,7 @@ class JacksonRenderer extends JavaRenderer {
1041
1038
  this.encoderName(topLevelName),
1042
1039
  "(",
1043
1040
  topLevelTypeRendered,
1044
- " obj) throws JsonProcessingException",
1041
+ " obj) throws JsonProcessingException"
1045
1042
  ], () => {
1046
1043
  this.emitLine("return ", this.writerGetterName(topLevelName), "().writeValueAsString(obj);");
1047
1044
  });
@@ -18,8 +18,8 @@ exports.javaScriptPropTypesOptions = {
18
18
  converters: Converters_1.convertersOption(),
19
19
  moduleSystem: new RendererOptions_1.EnumOption("module-system", "Which module system to use", [
20
20
  ["common-js", false],
21
- ["es6", true],
22
- ], "es6"),
21
+ ["es6", true]
22
+ ], "es6")
23
23
  };
24
24
  class JavaScriptPropTypesTargetLanguage extends TargetLanguage_1.TargetLanguage {
25
25
  getOptions() {
@@ -33,7 +33,7 @@ class JavaScriptPropTypesTargetLanguage extends TargetLanguage_1.TargetLanguage
33
33
  }
34
34
  }
35
35
  exports.JavaScriptPropTypesTargetLanguage = JavaScriptPropTypesTargetLanguage;
36
- const identityNamingFunction = Naming_1.funPrefixNamer("properties", (s) => s);
36
+ const identityNamingFunction = Naming_1.funPrefixNamer("properties", s => s);
37
37
  class JavaScriptPropTypesRenderer extends ConvenienceRenderer_1.ConvenienceRenderer {
38
38
  constructor(targetLanguage, renderContext, _jsOptions) {
39
39
  super(targetLanguage, renderContext);
@@ -42,10 +42,10 @@ class JavaScriptPropTypesRenderer extends ConvenienceRenderer_1.ConvenienceRende
42
42
  nameStyle(original, upper) {
43
43
  const acronyms = Acronyms_1.acronymStyle(this._jsOptions.acronymStyle);
44
44
  const words = __1.splitIntoWords(original);
45
- return __1.combineWords(words, JavaScript_1.legalizeName, upper ? __1.firstUpperWordStyle : Strings_1.allLowerWordStyle, __1.firstUpperWordStyle, upper ? (s) => __1.capitalize(acronyms(s)) : Strings_1.allLowerWordStyle, acronyms, "", JavaScriptUnicodeMaps_1.isES3IdentifierStart);
45
+ return __1.combineWords(words, JavaScript_1.legalizeName, upper ? __1.firstUpperWordStyle : Strings_1.allLowerWordStyle, __1.firstUpperWordStyle, upper ? s => __1.capitalize(acronyms(s)) : Strings_1.allLowerWordStyle, acronyms, "", JavaScriptUnicodeMaps_1.isES3IdentifierStart);
46
46
  }
47
47
  makeNamedTypeNamer() {
48
- return Naming_1.funPrefixNamer("types", (s) => this.nameStyle(s, true));
48
+ return Naming_1.funPrefixNamer("types", s => this.nameStyle(s, true));
49
49
  }
50
50
  namerForObjectProperty() {
51
51
  return identityNamingFunction;
@@ -54,7 +54,7 @@ class JavaScriptPropTypesRenderer extends ConvenienceRenderer_1.ConvenienceRende
54
54
  return null;
55
55
  }
56
56
  makeEnumCaseNamer() {
57
- return Naming_1.funPrefixNamer("enum-cases", (s) => this.nameStyle(s, false));
57
+ return Naming_1.funPrefixNamer("enum-cases", s => this.nameStyle(s, false));
58
58
  }
59
59
  namedTypeToNameForTopLevel(type) {
60
60
  return TypeUtils_1.directlyReachableSingleNamedType(type);
@@ -67,10 +67,10 @@ class JavaScriptPropTypesRenderer extends ConvenienceRenderer_1.ConvenienceRende
67
67
  if (["class", "object", "enum"].indexOf(t.kind) >= 0) {
68
68
  return ["_", this.nameForNamedType(t)];
69
69
  }
70
- const match = __1.matchType(t, (_anyType) => "PropTypes.any", (_nullType) => "PropTypes.any", (_boolType) => "PropTypes.bool", (_integerType) => "PropTypes.number", (_doubleType) => "PropTypes.number", (_stringType) => "PropTypes.string", (arrayType) => ["PropTypes.arrayOf(", this.typeMapTypeFor(arrayType.items, false), ")"], (_classType) => __1.panic("Should already be handled."), (_mapType) => "PropTypes.object", (_enumType) => __1.panic("Should already be handled."), (unionType) => {
70
+ const match = __1.matchType(t, _anyType => "PropTypes.any", _nullType => "PropTypes.any", _boolType => "PropTypes.bool", _integerType => "PropTypes.number", _doubleType => "PropTypes.number", _stringType => "PropTypes.string", arrayType => ["PropTypes.arrayOf(", this.typeMapTypeFor(arrayType.items, false), ")"], _classType => __1.panic("Should already be handled."), _mapType => "PropTypes.object", _enumType => __1.panic("Should already be handled."), unionType => {
71
71
  const children = Array.from(unionType.getChildren()).map((type) => this.typeMapTypeFor(type, false));
72
72
  return ["PropTypes.oneOfType([", ...collection_utils_1.arrayIntercalate(", ", children), "])"];
73
- }, (_transformedStringType) => {
73
+ }, _transformedStringType => {
74
74
  return "PropTypes.string";
75
75
  });
76
76
  if (required) {
@@ -102,7 +102,7 @@ class JavaScriptPropTypesRenderer extends ConvenienceRenderer_1.ConvenienceRende
102
102
  "",
103
103
  "MyComponent.propTypes = {",
104
104
  " input: MyShape",
105
- "};",
105
+ "};"
106
106
  ], "// ");
107
107
  }
108
108
  emitBlock(source, end, emit) {
@@ -151,7 +151,7 @@ class JavaScriptPropTypesRenderer extends ConvenienceRenderer_1.ConvenienceRende
151
151
  let ordinal = 0;
152
152
  // pull out all names
153
153
  const source = mapValue[index];
154
- const names = source.filter((value) => value);
154
+ const names = source.filter(value => value);
155
155
  // must be behind all these names
156
156
  for (let i = 0; i < names.length; i++) {
157
157
  const depName = names[i];
@@ -168,7 +168,7 @@ class JavaScriptPropTypesRenderer extends ConvenienceRenderer_1.ConvenienceRende
168
168
  order.splice(ordinal, 0, index);
169
169
  });
170
170
  // now emit ordered source
171
- order.forEach((i) => this.emitGatheredSource(mapValue[i]));
171
+ order.forEach(i => this.emitGatheredSource(mapValue[i]));
172
172
  // now emit top levels
173
173
  this.forEachTopLevel("none", (type, name) => {
174
174
  if (type instanceof Type_1.PrimitiveType) {