quicktype-core 24.0.2 → 25.0.0-pre1

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.
Files changed (222) hide show
  1. package/dist/ConvenienceRenderer.d.ts +1 -3
  2. package/dist/ConvenienceRenderer.js +4 -4
  3. package/dist/CycleBreaker.js +0 -1
  4. package/dist/DateTime.js +11 -2
  5. package/dist/DeclarationIR.js +0 -1
  6. package/dist/MakeTransformations.js +1 -1
  7. package/dist/MarkovChain.js +4 -3
  8. package/dist/Messages.d.ts +14 -14
  9. package/dist/Messages.js +1 -1
  10. package/dist/Renderer.js +3 -2
  11. package/dist/RendererOptions/index.js +2 -8
  12. package/dist/Run.js +1 -1
  13. package/dist/Source.js +8 -5
  14. package/dist/Transformers.js +1 -3
  15. package/dist/Type/Type.js +2 -4
  16. package/dist/Type/TypeBuilder.js +7 -5
  17. package/dist/Type/TypeGraph.d.ts +1 -1
  18. package/dist/Type/TypeUtils.js +5 -11
  19. package/dist/UnifyClasses.js +4 -6
  20. package/dist/UnionBuilder.js +1 -1
  21. package/dist/attributes/Constraints.d.ts +2 -2
  22. package/dist/attributes/Constraints.js +2 -2
  23. package/dist/attributes/TypeAttributes.js +2 -4
  24. package/dist/esm/ConvenienceRenderer.d.ts +1 -3
  25. package/dist/esm/ConvenienceRenderer.js +4 -4
  26. package/dist/esm/CycleBreaker.js +0 -1
  27. package/dist/esm/DateTime.js +11 -2
  28. package/dist/esm/DeclarationIR.js +0 -1
  29. package/dist/esm/MakeTransformations.js +1 -1
  30. package/dist/esm/MarkovChain.js +4 -3
  31. package/dist/esm/Messages.d.ts +14 -14
  32. package/dist/esm/Messages.js +1 -1
  33. package/dist/esm/Renderer.js +3 -2
  34. package/dist/esm/RendererOptions/index.js +2 -8
  35. package/dist/esm/Run.js +1 -1
  36. package/dist/esm/Source.js +8 -5
  37. package/dist/esm/Transformers.js +1 -3
  38. package/dist/esm/Type/TransformedStringType.js +1 -1
  39. package/dist/esm/Type/Type.js +2 -4
  40. package/dist/esm/Type/TypeBuilder.js +7 -5
  41. package/dist/esm/Type/TypeGraph.d.ts +1 -1
  42. package/dist/esm/Type/TypeUtils.js +5 -11
  43. package/dist/esm/UnifyClasses.js +4 -6
  44. package/dist/esm/UnionBuilder.js +1 -1
  45. package/dist/esm/attributes/Constraints.d.ts +2 -2
  46. package/dist/esm/attributes/Constraints.js +2 -2
  47. package/dist/esm/attributes/TypeAttributes.js +2 -4
  48. package/dist/esm/input/CompressedJSON.d.ts +5 -5
  49. package/dist/esm/input/CompressedJSON.js +2 -1
  50. package/dist/esm/input/Inference.js +3 -1
  51. package/dist/esm/input/Inputs.js +1 -1
  52. package/dist/esm/input/JSONSchemaInput.d.ts +1 -1
  53. package/dist/esm/input/JSONSchemaInput.js +14 -12
  54. package/dist/esm/input/JSONSchemaStore.js +1 -1
  55. package/dist/esm/input/PostmanCollection.js +2 -2
  56. package/dist/esm/input/io/get-stream/buffer-stream.js +2 -0
  57. package/dist/esm/input/io/get-stream/index.js +3 -2
  58. package/dist/esm/language/All.d.ts +23 -0
  59. package/dist/esm/language/All.js +24 -0
  60. package/dist/esm/language/CJSON/CJSONRenderer.d.ts +1 -1
  61. package/dist/esm/language/CJSON/CJSONRenderer.js +131 -152
  62. package/dist/esm/language/CJSON/language.d.ts +6 -6
  63. package/dist/esm/language/CPlusPlus/CPlusPlusRenderer.js +7 -11
  64. package/dist/esm/language/CPlusPlus/language.d.ts +10 -7
  65. package/dist/esm/language/CPlusPlus/language.js +1 -0
  66. package/dist/esm/language/CPlusPlus/utils.d.ts +1 -1
  67. package/dist/esm/language/CPlusPlus/utils.js +2 -2
  68. package/dist/esm/language/CSharp/CSharpRenderer.js +7 -13
  69. package/dist/esm/language/CSharp/NewtonSoftCSharpRenderer.js +1 -3
  70. package/dist/esm/language/CSharp/SystemTextJsonCSharpRenderer.js +15 -17
  71. package/dist/esm/language/CSharp/language.d.ts +33 -33
  72. package/dist/esm/language/CSharp/language.js +2 -2
  73. package/dist/esm/language/Crystal/CrystalRenderer.d.ts +0 -3
  74. package/dist/esm/language/Crystal/CrystalRenderer.js +0 -4
  75. package/dist/esm/language/Crystal/language.d.ts +1 -1
  76. package/dist/esm/language/Crystal/utils.js +2 -2
  77. package/dist/esm/language/Dart/DartRenderer.js +6 -4
  78. package/dist/esm/language/Elixir/ElixirRenderer.js +8 -9
  79. package/dist/esm/language/Elm/ElmRenderer.js +2 -2
  80. package/dist/esm/language/Golang/GolangRenderer.js +4 -2
  81. package/dist/esm/language/JSONSchema/JSONSchemaRenderer.js +1 -0
  82. package/dist/esm/language/JSONSchema/language.d.ts +1 -1
  83. package/dist/esm/language/Java/JavaJacksonRenderer.d.ts +0 -5
  84. package/dist/esm/language/Java/JavaJacksonRenderer.js +11 -5
  85. package/dist/esm/language/Java/JavaRenderer.js +21 -8
  86. package/dist/esm/language/JavaScript/JavaScriptRenderer.js +5 -9
  87. package/dist/esm/language/JavaScriptPropTypes/JavaScriptPropTypesRenderer.js +13 -13
  88. package/dist/esm/language/Kotlin/KotlinJacksonRenderer.d.ts +0 -5
  89. package/dist/esm/language/Kotlin/KotlinJacksonRenderer.js +0 -3
  90. package/dist/esm/language/Kotlin/KotlinKlaxonRenderer.d.ts +0 -5
  91. package/dist/esm/language/Kotlin/KotlinKlaxonRenderer.js +0 -3
  92. package/dist/esm/language/Kotlin/KotlinXRenderer.d.ts +0 -5
  93. package/dist/esm/language/Kotlin/KotlinXRenderer.js +0 -3
  94. package/dist/esm/language/Kotlin/language.d.ts +1 -1
  95. package/dist/esm/language/Kotlin/utils.js +1 -1
  96. package/dist/esm/language/Objective-C/ObjectiveCRenderer.js +1 -1
  97. package/dist/esm/language/Objective-C/language.d.ts +1 -1
  98. package/dist/esm/language/Php/PhpRenderer.js +19 -19
  99. package/dist/esm/language/Pike/language.d.ts +1 -1
  100. package/dist/esm/language/Python/JSONPythonRenderer.js +6 -0
  101. package/dist/esm/language/Python/PythonRenderer.js +4 -10
  102. package/dist/esm/language/Ruby/RubyRenderer.js +7 -9
  103. package/dist/esm/language/Ruby/language.d.ts +1 -1
  104. package/dist/esm/language/Ruby/utils.d.ts +1 -1
  105. package/dist/esm/language/Ruby/utils.js +2 -2
  106. package/dist/esm/language/Rust/language.d.ts +2 -2
  107. package/dist/esm/language/Rust/utils.js +9 -7
  108. package/dist/esm/language/Scala3/CirceRenderer.d.ts +1 -1
  109. package/dist/esm/language/Scala3/CirceRenderer.js +1 -1
  110. package/dist/esm/language/Scala3/Scala3Renderer.js +2 -2
  111. package/dist/esm/language/Scala3/constants.d.ts +1 -1
  112. package/dist/esm/language/Scala3/language.d.ts +1 -1
  113. package/dist/esm/language/Scala3/utils.js +3 -3
  114. package/dist/esm/language/Smithy4s/Smithy4sRenderer.js +5 -9
  115. package/dist/esm/language/Smithy4s/constants.d.ts +1 -1
  116. package/dist/esm/language/Smithy4s/utils.js +2 -2
  117. package/dist/esm/language/Swift/SwiftRenderer.js +12 -16
  118. package/dist/esm/language/Swift/language.d.ts +3 -3
  119. package/dist/esm/language/Swift/utils.js +1 -1
  120. package/dist/esm/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.d.ts +1 -1
  121. package/dist/esm/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.js +5 -1
  122. package/dist/esm/language/TypeScriptEffectSchema/language.d.ts +1 -1
  123. package/dist/esm/language/TypeScriptFlow/TypeScriptFlowBaseRenderer.js +0 -1
  124. package/dist/esm/language/TypeScriptFlow/TypeScriptRenderer.js +1 -3
  125. package/dist/esm/language/TypeScriptFlow/language.d.ts +0 -1
  126. package/dist/esm/language/TypeScriptFlow/language.js +1 -9
  127. package/dist/esm/language/TypeScriptZod/TypeScriptZodRenderer.js +9 -6
  128. package/dist/esm/language/TypeScriptZod/language.d.ts +1 -1
  129. package/dist/esm/language/types.d.ts +9 -0
  130. package/dist/esm/rewrites/CombineClasses.js +4 -6
  131. package/dist/esm/rewrites/InferMaps.js +4 -4
  132. package/dist/esm/support/Strings.d.ts +1 -1
  133. package/dist/esm/support/Strings.js +38 -25
  134. package/dist/esm/support/Support.js +3 -3
  135. package/dist/input/CompressedJSON.d.ts +5 -5
  136. package/dist/input/CompressedJSON.js +2 -1
  137. package/dist/input/Inference.js +3 -1
  138. package/dist/input/Inputs.js +1 -1
  139. package/dist/input/JSONSchemaInput.d.ts +1 -1
  140. package/dist/input/JSONSchemaInput.js +13 -11
  141. package/dist/input/JSONSchemaStore.js +1 -1
  142. package/dist/input/PostmanCollection.js +2 -2
  143. package/dist/input/io/get-stream/buffer-stream.js +2 -0
  144. package/dist/input/io/get-stream/index.js +3 -2
  145. package/dist/language/All.d.ts +23 -0
  146. package/dist/language/All.js +24 -0
  147. package/dist/language/CJSON/CJSONRenderer.d.ts +1 -1
  148. package/dist/language/CJSON/CJSONRenderer.js +131 -152
  149. package/dist/language/CJSON/language.d.ts +6 -6
  150. package/dist/language/CPlusPlus/CPlusPlusRenderer.js +7 -11
  151. package/dist/language/CPlusPlus/language.d.ts +10 -7
  152. package/dist/language/CPlusPlus/language.js +1 -0
  153. package/dist/language/CPlusPlus/utils.d.ts +1 -1
  154. package/dist/language/CPlusPlus/utils.js +2 -2
  155. package/dist/language/CSharp/CSharpRenderer.js +7 -13
  156. package/dist/language/CSharp/NewtonSoftCSharpRenderer.js +1 -3
  157. package/dist/language/CSharp/SystemTextJsonCSharpRenderer.js +15 -17
  158. package/dist/language/CSharp/language.d.ts +33 -33
  159. package/dist/language/CSharp/language.js +2 -2
  160. package/dist/language/Crystal/CrystalRenderer.d.ts +0 -3
  161. package/dist/language/Crystal/CrystalRenderer.js +0 -4
  162. package/dist/language/Crystal/language.d.ts +1 -1
  163. package/dist/language/Crystal/utils.js +2 -2
  164. package/dist/language/Dart/DartRenderer.js +6 -4
  165. package/dist/language/Elixir/ElixirRenderer.js +8 -9
  166. package/dist/language/Elm/ElmRenderer.js +2 -2
  167. package/dist/language/Golang/GolangRenderer.js +4 -2
  168. package/dist/language/JSONSchema/JSONSchemaRenderer.js +1 -0
  169. package/dist/language/JSONSchema/language.d.ts +1 -1
  170. package/dist/language/Java/JavaJacksonRenderer.d.ts +0 -5
  171. package/dist/language/Java/JavaJacksonRenderer.js +11 -5
  172. package/dist/language/Java/JavaRenderer.js +21 -8
  173. package/dist/language/JavaScript/JavaScriptRenderer.js +5 -9
  174. package/dist/language/JavaScriptPropTypes/JavaScriptPropTypesRenderer.js +13 -13
  175. package/dist/language/Kotlin/KotlinJacksonRenderer.d.ts +0 -5
  176. package/dist/language/Kotlin/KotlinJacksonRenderer.js +0 -3
  177. package/dist/language/Kotlin/KotlinKlaxonRenderer.d.ts +0 -5
  178. package/dist/language/Kotlin/KotlinKlaxonRenderer.js +0 -3
  179. package/dist/language/Kotlin/KotlinXRenderer.d.ts +0 -5
  180. package/dist/language/Kotlin/KotlinXRenderer.js +0 -3
  181. package/dist/language/Kotlin/language.d.ts +1 -1
  182. package/dist/language/Kotlin/utils.js +1 -1
  183. package/dist/language/Objective-C/ObjectiveCRenderer.js +1 -1
  184. package/dist/language/Objective-C/language.d.ts +1 -1
  185. package/dist/language/Php/PhpRenderer.js +19 -19
  186. package/dist/language/Pike/language.d.ts +1 -1
  187. package/dist/language/Python/JSONPythonRenderer.js +6 -0
  188. package/dist/language/Python/PythonRenderer.js +4 -10
  189. package/dist/language/Ruby/RubyRenderer.js +7 -9
  190. package/dist/language/Ruby/language.d.ts +1 -1
  191. package/dist/language/Ruby/utils.d.ts +1 -1
  192. package/dist/language/Ruby/utils.js +2 -2
  193. package/dist/language/Rust/language.d.ts +2 -2
  194. package/dist/language/Rust/utils.js +9 -7
  195. package/dist/language/Scala3/CirceRenderer.d.ts +1 -1
  196. package/dist/language/Scala3/CirceRenderer.js +1 -1
  197. package/dist/language/Scala3/Scala3Renderer.js +2 -2
  198. package/dist/language/Scala3/constants.d.ts +1 -1
  199. package/dist/language/Scala3/language.d.ts +1 -1
  200. package/dist/language/Scala3/utils.js +3 -3
  201. package/dist/language/Smithy4s/Smithy4sRenderer.js +5 -9
  202. package/dist/language/Smithy4s/constants.d.ts +1 -1
  203. package/dist/language/Smithy4s/utils.js +2 -2
  204. package/dist/language/Swift/SwiftRenderer.js +12 -16
  205. package/dist/language/Swift/language.d.ts +3 -3
  206. package/dist/language/Swift/utils.js +1 -1
  207. package/dist/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.d.ts +1 -1
  208. package/dist/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.js +5 -1
  209. package/dist/language/TypeScriptEffectSchema/language.d.ts +1 -1
  210. package/dist/language/TypeScriptFlow/TypeScriptFlowBaseRenderer.js +0 -1
  211. package/dist/language/TypeScriptFlow/TypeScriptRenderer.js +1 -3
  212. package/dist/language/TypeScriptFlow/language.d.ts +0 -1
  213. package/dist/language/TypeScriptFlow/language.js +1 -9
  214. package/dist/language/TypeScriptZod/TypeScriptZodRenderer.js +9 -6
  215. package/dist/language/TypeScriptZod/language.d.ts +1 -1
  216. package/dist/language/types.d.ts +9 -0
  217. package/dist/rewrites/CombineClasses.js +4 -6
  218. package/dist/rewrites/InferMaps.js +4 -4
  219. package/dist/support/Strings.d.ts +1 -1
  220. package/dist/support/Strings.js +38 -25
  221. package/dist/support/Support.js +3 -6
  222. package/package.json +4 -5
@@ -1,9 +1,8 @@
1
1
  import { type Declaration } from "./DeclarationIR.js";
2
2
  import { DependencyName, type Name, type Namer, Namespace } from "./Naming.js";
3
- import { type BlankLineConfig, type ForEachPosition, type RenderContext, Renderer } from "./Renderer.js";
3
+ import { type BlankLineConfig, type ForEachPosition, Renderer } from "./Renderer.js";
4
4
  import { type Sourcelike } from "./Source.js";
5
5
  import { type Comment, type CommentOptions } from "./support/Comments.js";
6
- import type { TargetLanguage } from "./TargetLanguage.js";
7
6
  import { type Transformation } from "./Transformers.js";
8
7
  import { type ClassProperty, ClassType, EnumType, ObjectType, type Type, type TypeKind, UnionType } from "./Type/index.js";
9
8
  export declare const topLevelNameOrder = 1;
@@ -34,7 +33,6 @@ export declare abstract class ConvenienceRenderer extends Renderer {
34
33
  private _haveOptionalProperties;
35
34
  private _cycleBreakerTypes?;
36
35
  private _alphabetizeProperties;
37
- constructor(targetLanguage: TargetLanguage, renderContext: RenderContext);
38
36
  get topLevels(): ReadonlyMap<string, Type>;
39
37
  /**
40
38
  * Return an array of strings which are not allowed as names in the global
@@ -50,8 +50,8 @@ const assignedPropertyNamesAttributeKind = new TypeAttributes_js_1.TypeAttribute
50
50
  const assignedMemberNamesAttributeKind = new TypeAttributes_js_1.TypeAttributeKind("assignedMemberNames");
51
51
  const assignedCaseNamesAttributeKind = new TypeAttributes_js_1.TypeAttributeKind("assignedCaseNames");
52
52
  class ConvenienceRenderer extends Renderer_js_1.Renderer {
53
- constructor(targetLanguage, renderContext) {
54
- super(targetLanguage, renderContext);
53
+ constructor() {
54
+ super(...arguments);
55
55
  this._alphabetizeProperties = false;
56
56
  }
57
57
  get topLevels() {
@@ -425,7 +425,7 @@ class ConvenienceRenderer extends Renderer_js_1.Renderer {
425
425
  }
426
426
  const typeNameForUnionMember = (t) => (0, TypeUtils_js_1.matchTypeExhaustive)(t, (_noneType) => {
427
427
  return (0, Support_js_1.panic)("none type should have been replaced");
428
- }, (_anyType) => "anything", (_nullType) => "null", (_boolType) => "bool", (_integerType) => "integer", (_doubleType) => "double", (_stringType) => "string", (arrayType) => typeNameForUnionMember(arrayType.items) + "_array", (classType) => lookup(this.nameForNamedType(classType)), (mapType) => typeNameForUnionMember(mapType.values) + "_map", (objectType) => {
428
+ }, (_anyType) => "anything", (_nullType) => "null", (_boolType) => "bool", (_integerType) => "integer", (_doubleType) => "double", (_stringType) => "string", (arrayType) => `${typeNameForUnionMember(arrayType.items)}_array`, (classType) => lookup(this.nameForNamedType(classType)), (mapType) => `${typeNameForUnionMember(mapType.values)}_map`, (objectType) => {
429
429
  (0, Support_js_1.assert)(this.targetLanguage.supportsFullObjectType, "Object type should have been replaced in `replaceObjectType`");
430
430
  return lookup(this.nameForNamedType(objectType));
431
431
  }, (_enumType) => "enum", (_unionType) => "union", (transformedType) => transformedType.kind.replace("-", "_"));
@@ -660,7 +660,7 @@ class ConvenienceRenderer extends Renderer_js_1.Renderer {
660
660
  // A quote at the end of the line would merge with a closing
661
661
  // `"""` emitted right after it. The quote needs escaping iff
662
662
  // it's preceded by an even number of backslashes.
663
- if (lineEnd !== undefined && lineEnd.startsWith('"')) {
663
+ if (lineEnd === null || lineEnd === void 0 ? void 0 : lineEnd.startsWith('"')) {
664
664
  const trailing = /(\\*)"$/.exec(escaped);
665
665
  if (trailing !== null && trailing[1].length % 2 === 0) {
666
666
  escaped = `${escaped.slice(0, -1)}\\"`;
@@ -91,7 +91,6 @@ function breakCycles(outEdges, chooseBreaker) {
91
91
  results.push([breakNode, info]);
92
92
  break;
93
93
  }
94
- continue;
95
94
  }
96
95
  return results;
97
96
  }
package/dist/DateTime.js CHANGED
@@ -1,6 +1,13 @@
1
1
  "use strict";
2
2
  /* eslint-disable */
3
+ // Adapted from ajv:
3
4
  // https://github.com/epoberezkin/ajv/blob/4d76c6fb813b136b6ec4fe74990bc97233d75dea/lib/compile/formats.js
5
+ //
6
+ // We deviate from ajv in that we recognize only strict RFC 3339 date-times:
7
+ // the date/time separator must be "T" (or "t"), not a space, and times must
8
+ // carry a timezone offset ("Z"/"z" or "+hh:mm"/"-hh:mm"). ajv accepted the
9
+ // lenient forms, which meant we inferred "date-time" for strings like
10
+ // "2013-06-15 21:10:28" that most target languages' date parsers reject.
4
11
  Object.defineProperty(exports, "__esModule", { value: true });
5
12
  exports.DefaultDateTimeRecognizer = void 0;
6
13
  /*
@@ -28,8 +35,10 @@ SOFTWARE.
28
35
  */
29
36
  const DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
30
37
  const DAYS = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
31
- const TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
32
- const DATE_TIME_SEPARATOR = /t|\s/i;
38
+ // RFC 3339 full-time: the timezone offset is mandatory.
39
+ const TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)$/i;
40
+ // RFC 3339 date-time: the separator must be "T" or "t", never a space.
41
+ const DATE_TIME_SEPARATOR = /t/i;
33
42
  class DefaultDateTimeRecognizer {
34
43
  isDate(str) {
35
44
  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
@@ -144,7 +144,6 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
144
144
  for (const t of forwardDeclarable) {
145
145
  declarations.push({ kind: "define", type: t });
146
146
  }
147
- return;
148
147
  }
149
148
  /*
150
149
  if (_writeComponents) {
@@ -70,7 +70,7 @@ function replaceUnion(union, builder, forwardingRef, transformedTypes, debugPrin
70
70
  const memberTypeRef = memberForKind(kind);
71
71
  return new Transformers_js_1.DecodingTransformer(graph, memberTypeRef, consumer(memberTypeRef));
72
72
  }
73
- let maybeStringType = undefined;
73
+ let maybeStringType;
74
74
  function getStringType() {
75
75
  if (maybeStringType === undefined) {
76
76
  maybeStringType = builder.getStringType(TypeAttributes_js_1.emptyTypeAttributes, StringTypes_js_1.StringTypes.unrestricted);
@@ -56,7 +56,8 @@ function increment(t, seq, i) {
56
56
  }
57
57
  let st = t.arr[first];
58
58
  if (st === null) {
59
- t.arr[first] = st = makeTrie();
59
+ st = makeTrie();
60
+ t.arr[first] = st;
60
61
  }
61
62
  if (typeof st !== "object") {
62
63
  return (0, Support_js_1.panic)("Malformed trie");
@@ -91,9 +92,9 @@ function evaluateFull(mc, word) {
91
92
  cp = 0.0001;
92
93
  }
93
94
  scores.push(cp);
94
- p = p * cp;
95
+ p *= cp;
95
96
  }
96
- return [Math.pow(p, 1 / (word.length - depth + 1)), scores];
97
+ return [Math.pow(p, (1 / (word.length - depth + 1))), scores];
97
98
  }
98
99
  function evaluate(mc, word) {
99
100
  return evaluateFull(mc, word)[0];
@@ -20,7 +20,7 @@ export type ErrorProperties = {
20
20
  };
21
21
  } | {
22
22
  kind: "MiscUnicodeHighSurrogateWithoutLowSurrogate";
23
- properties: {};
23
+ properties: Record<string, never>;
24
24
  } | {
25
25
  kind: "MiscInvalidMinMaxConstraint";
26
26
  properties: {
@@ -93,30 +93,30 @@ export type ErrorProperties = {
93
93
  } | {
94
94
  kind: "SchemaRequiredMustBeStringOrStringArray";
95
95
  properties: {
96
- actual: any;
96
+ actual: unknown;
97
97
  ref: Ref;
98
98
  };
99
99
  } | {
100
100
  kind: "SchemaRequiredElementMustBeString";
101
101
  properties: {
102
- element: any;
102
+ element: unknown;
103
103
  ref: Ref;
104
104
  };
105
105
  } | {
106
106
  kind: "SchemaTypeMustBeStringOrStringArray";
107
107
  properties: {
108
- actual: any;
108
+ actual: unknown;
109
109
  };
110
110
  } | {
111
111
  kind: "SchemaTypeElementMustBeString";
112
112
  properties: {
113
- element: any;
113
+ element: unknown;
114
114
  ref: Ref;
115
115
  };
116
116
  } | {
117
117
  kind: "SchemaArrayItemsMustBeStringOrArray";
118
118
  properties: {
119
- actual: any;
119
+ actual: unknown;
120
120
  ref: Ref;
121
121
  };
122
122
  } | {
@@ -134,7 +134,7 @@ export type ErrorProperties = {
134
134
  } | {
135
135
  kind: "SchemaSetOperationCasesIsNotArray";
136
136
  properties: {
137
- cases: any;
137
+ cases: unknown;
138
138
  operation: string;
139
139
  ref: Ref;
140
140
  };
@@ -184,7 +184,7 @@ export type ErrorProperties = {
184
184
  };
185
185
  } | {
186
186
  kind: "GraphQLNoQueriesDefined";
187
- properties: {};
187
+ properties: Record<string, never>;
188
188
  } | {
189
189
  kind: "DriverUnknownSourceLanguage";
190
190
  properties: {
@@ -207,7 +207,7 @@ export type ErrorProperties = {
207
207
  };
208
208
  } | {
209
209
  kind: "DriverNoGraphQLQueryGiven";
210
- properties: {};
210
+ properties: Record<string, never>;
211
211
  } | {
212
212
  kind: "DriverNoGraphQLSchemaInDir";
213
213
  properties: {
@@ -220,10 +220,10 @@ export type ErrorProperties = {
220
220
  };
221
221
  } | {
222
222
  kind: "DriverSourceLangMustBeGraphQL";
223
- properties: {};
223
+ properties: Record<string, never>;
224
224
  } | {
225
225
  kind: "DriverGraphQLSchemaNeeded";
226
- properties: {};
226
+ properties: Record<string, never>;
227
227
  } | {
228
228
  kind: "DriverInputFileDoesNotExist";
229
229
  properties: {
@@ -246,7 +246,7 @@ export type ErrorProperties = {
246
246
  };
247
247
  } | {
248
248
  kind: "DriverNoLanguageOrExtension";
249
- properties: {};
249
+ properties: Record<string, never>;
250
250
  } | {
251
251
  kind: "DriverCLIOptionParsingFailed";
252
252
  properties: {
@@ -254,7 +254,7 @@ export type ErrorProperties = {
254
254
  };
255
255
  } | {
256
256
  kind: "IRNoForwardDeclarableTypeInCycle";
257
- properties: {};
257
+ properties: Record<string, never>;
258
258
  } | {
259
259
  kind: "IRTypeAttributesNotPropagated";
260
260
  properties: {
@@ -263,7 +263,7 @@ export type ErrorProperties = {
263
263
  };
264
264
  } | {
265
265
  kind: "IRNoEmptyUnions";
266
- properties: {};
266
+ properties: Record<string, never>;
267
267
  } | {
268
268
  kind: "RendererUnknownOptionValue";
269
269
  properties: {
package/dist/Messages.js CHANGED
@@ -95,7 +95,7 @@ function messageError(kind, properties) {
95
95
  else {
96
96
  valueString = value;
97
97
  }
98
- userMessage = userMessage.replace("${" + name + "}", valueString);
98
+ userMessage = userMessage.replace(`\${${name}}`, valueString);
99
99
  }
100
100
  throw new QuickTypeError(message, kind, userMessage, properties);
101
101
  }
package/dist/Renderer.js CHANGED
@@ -24,14 +24,15 @@ function lineIndentation(line) {
24
24
  indent = (indent / 4 + 1) * 4;
25
25
  }
26
26
  else {
27
- return { indent, text: line.substring(i) };
27
+ return { indent, text: line.slice(i) };
28
28
  }
29
29
  }
30
30
  return { indent: 0, text: null };
31
31
  }
32
32
  class EmitContext {
33
33
  constructor() {
34
- this._currentEmitTarget = this._emitted = [];
34
+ this._emitted = [];
35
+ this._currentEmitTarget = this._emitted;
35
36
  this._numBlankLinesNeeded = 0;
36
37
  this._preventBlankLine = true; // no blank lines at start of file
37
38
  }
@@ -73,14 +73,8 @@ class BooleanOption extends Option {
73
73
  });
74
74
  }
75
75
  get cliDefinitions() {
76
- const negated = Object.assign({}, this.definition, {
77
- name: `no-${this.name}`,
78
- defaultValue: !this.definition.defaultValue,
79
- });
80
- const display = Object.assign({}, this.definition, {
81
- name: `[no-]${this.name}`,
82
- description: `${this.definition.description} (${this.definition.defaultValue ? "on" : "off"} by default)`,
83
- });
76
+ const negated = Object.assign(Object.assign({}, this.definition), { name: `no-${this.name}`, defaultValue: !this.definition.defaultValue });
77
+ const display = Object.assign(Object.assign({}, this.definition), { name: `[no-]${this.name}`, description: `${this.definition.description} (${this.definition.defaultValue ? "on" : "off"} by default)` });
84
78
  return {
85
79
  display: [display],
86
80
  actual: [this.definition, negated],
package/dist/Run.js CHANGED
@@ -101,7 +101,7 @@ class Run {
101
101
  constructor(options) {
102
102
  // We must not overwrite defaults with undefined values, which
103
103
  // we sometimes get.
104
- this._options = Object.fromEntries(Object.entries(Object.assign({}, defaultOptions, Inference_js_1.defaultInferenceFlags)).map(([k, v]) => { var _a; return [k, (_a = options[k]) !== null && _a !== void 0 ? _a : v]; }));
104
+ this._options = Object.fromEntries(Object.entries(Object.assign(Object.assign({}, defaultOptions), Inference_js_1.defaultInferenceFlags)).map(([k, v]) => { var _a; return [k, (_a = options[k]) !== null && _a !== void 0 ? _a : v]; }));
105
105
  }
106
106
  get stringTypeMapping() {
107
107
  const targetLanguage = getTargetLanguage(this._options.lang);
package/dist/Source.js CHANGED
@@ -19,7 +19,7 @@ function newline() {
19
19
  return { kind: "newline", indentationChange: 0 };
20
20
  }
21
21
  function sourcelikeToSource(sl) {
22
- if (sl instanceof Array) {
22
+ if (Array.isArray(sl)) {
23
23
  return {
24
24
  kind: "sequence",
25
25
  sequence: sl.map(sourcelikeToSource),
@@ -123,7 +123,7 @@ function serializeRenderResult(rootSource, names, indentation) {
123
123
  serializeToStringArray(s);
124
124
  }
125
125
  break;
126
- case "table":
126
+ case "table": {
127
127
  const t = source.table;
128
128
  const numRows = t.length;
129
129
  if (numRows === 0)
@@ -158,7 +158,8 @@ function serializeRenderResult(rootSource, names, indentation) {
158
158
  }
159
159
  }
160
160
  break;
161
- case "annotated":
161
+ }
162
+ case "annotated": {
162
163
  const start = currentLocation();
163
164
  serializeToStringArray(source.source);
164
165
  const end = currentLocation();
@@ -167,24 +168,26 @@ function serializeRenderResult(rootSource, names, indentation) {
167
168
  span: { start, end },
168
169
  });
169
170
  break;
171
+ }
170
172
  case "name":
171
173
  (0, Support_js_1.assert)(names.has(source.named), "No name for Named");
172
174
  indentIfNeeded();
173
175
  currentLine.push((0, Support_js_1.defined)(names.get(source.named)));
174
176
  break;
175
- case "modified":
177
+ case "modified": {
176
178
  indentIfNeeded();
177
179
  const serialized = serializeRenderResult(source.source, names, indentation).lines;
178
180
  (0, Support_js_1.assert)(serialized.length === 1, "Cannot modify more than one line.");
179
181
  currentLine.push(source.modifier(serialized[0]));
180
182
  break;
183
+ }
181
184
  default:
182
185
  return (0, Support_js_1.assertNever)(source);
183
186
  }
184
187
  }
185
188
  serializeToStringArray(rootSource);
186
189
  finishLine();
187
- return { lines, annotations: annotations };
190
+ return { lines, annotations };
188
191
  }
189
192
  function singleWord(...source) {
190
193
  return { source, needsParens: false };
@@ -43,9 +43,7 @@ class Transformer {
43
43
  debugDescription() {
44
44
  return `${debugStringForType(this.sourceType)} -> ${this.kind}`;
45
45
  }
46
- debugPrintContinuations(_indent) {
47
- return;
48
- }
46
+ debugPrintContinuations(_indent) { }
49
47
  debugPrint(indent) {
50
48
  console.log((0, Support_js_1.indentationString)(indent) + this.debugDescription());
51
49
  this.debugPrintContinuations(indent + 1);
package/dist/Type/Type.js CHANGED
@@ -517,10 +517,8 @@ function setOperationCasesEqual(typesA, typesB, conflateNumbers, membersEqual) {
517
517
  return false;
518
518
  return (0, collection_utils_1.iterableEvery)(ma, (ta) => {
519
519
  const tb = (0, collection_utils_1.iterableFind)(mb, (t) => t.kind === ta.kind);
520
- if (tb !== undefined) {
521
- if (membersEqual(ta, tb))
522
- return true;
523
- }
520
+ if (tb !== undefined && membersEqual(ta, tb))
521
+ return true;
524
522
  if (conflateNumbers) {
525
523
  if (ta.kind === "integer" &&
526
524
  (0, collection_utils_1.iterableSome)(mb, (t) => t.kind === "double"))
@@ -56,7 +56,9 @@ class TypeBuilder {
56
56
  assertTypeRefSetGraph(trefs) {
57
57
  if (trefs === undefined)
58
58
  return;
59
- trefs.forEach((tref) => this.assertTypeRefGraph(tref));
59
+ trefs.forEach((tref) => {
60
+ this.assertTypeRefGraph(tref);
61
+ });
60
62
  }
61
63
  filterTypeAttributes(t, attributes) {
62
64
  const filtered = (0, collection_utils_1.mapFilter)(attributes, (_, k) => k.appliesToTypeKind(t.kind));
@@ -238,7 +240,9 @@ class TypeBuilder {
238
240
  this.registerType(type);
239
241
  }
240
242
  modifyPropertiesIfNecessary(properties) {
241
- properties.forEach((p) => this.assertTypeRefGraph(p.typeRef));
243
+ properties.forEach((p) => {
244
+ this.assertTypeRefGraph(p.typeRef);
245
+ });
242
246
  if (this.canonicalOrder) {
243
247
  properties = (0, collection_utils_1.mapSortByKey)(properties);
244
248
  }
@@ -284,8 +288,6 @@ class TypeBuilder {
284
288
  type.setMembers(members);
285
289
  this.registerType(type);
286
290
  }
287
- setLostTypeAttributes() {
288
- return;
289
- }
291
+ setLostTypeAttributes() { }
290
292
  }
291
293
  exports.TypeBuilder = TypeBuilder;
@@ -8,7 +8,7 @@ import { type TypeRef } from "./TypeRef.js";
8
8
  import { type SeparatedNamedTypes } from "./TypeUtils.js";
9
9
  export declare class TypeAttributeStore {
10
10
  private readonly _typeGraph;
11
- private _values;
11
+ private readonly _values;
12
12
  private readonly _topLevelValues;
13
13
  constructor(_typeGraph: TypeGraph, _values: Array<TypeAttributes | undefined>);
14
14
  private getTypeIndex;
@@ -60,10 +60,8 @@ function setOperationMembersRecursively(oneOrMany, combinationKind) {
60
60
  else if (includeAny || t.kind !== "any") {
61
61
  members.add(t);
62
62
  }
63
- else {
64
- if (combinationKind !== undefined) {
65
- attributes = (0, TypeAttributes_js_1.combineTypeAttributes)(combinationKind, attributes, t.getAttributes());
66
- }
63
+ else if (combinationKind !== undefined) {
64
+ attributes = (0, TypeAttributes_js_1.combineTypeAttributes)(combinationKind, attributes, t.getAttributes());
67
65
  }
68
66
  }
69
67
  for (const so of setOperations) {
@@ -77,10 +75,8 @@ function makeGroupsToFlatten(setOperations, include) {
77
75
  // FIXME: We shouldn't have to make a new set here once we got rid
78
76
  // of immutable.
79
77
  const members = new Set(setOperationMembersRecursively(u, undefined)[0]);
80
- if (include !== undefined) {
81
- if (!include(members))
82
- continue;
83
- }
78
+ if (include !== undefined && !include(members))
79
+ continue;
84
80
  let maybeSet = typeGroups.get(members);
85
81
  if (maybeSet === undefined) {
86
82
  maybeSet = new Set();
@@ -224,8 +220,6 @@ function matchType(type, anyType, nullType, boolType, integerType, doubleType, s
224
220
  return matchTypeExhaustive(type, typeNotSupported, anyType, nullType, boolType, integerType, doubleType, stringType, arrayType, classType, mapType, typeNotSupported, enumType, unionType, transformedStringType !== null && transformedStringType !== void 0 ? transformedStringType : typeNotSupported);
225
221
  }
226
222
  function matchCompoundType(t, arrayType, classType, mapType, objectType, unionType) {
227
- function ignore(_) {
228
- return;
229
- }
223
+ function ignore(_) { }
230
224
  matchTypeExhaustive(t, ignore, ignore, ignore, ignore, ignore, ignore, ignore, arrayType, classType, mapType, objectType, ignore, unionType, ignore);
231
225
  }
@@ -17,7 +17,7 @@ function getCliqueProperties(clique, builder, makePropertyType) {
17
17
  (0, collection_utils_1.setUnionInto)(propertyNames, o.getProperties().keys());
18
18
  }
19
19
  const properties = Array.from(propertyNames).map((name) => [name, new Set(), false]);
20
- let additionalProperties = undefined;
20
+ let additionalProperties;
21
21
  for (const o of clique) {
22
22
  const additional = o.getAdditionalProperties();
23
23
  if (additional !== undefined) {
@@ -28,10 +28,8 @@ function getCliqueProperties(clique, builder, makePropertyType) {
28
28
  additionalProperties.add(additional);
29
29
  }
30
30
  }
31
- // FIXME: refactor this
32
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
33
- for (let i = 0; i < properties.length; i++) {
34
- let [name, types, isOptional] = properties[i];
31
+ for (const property of properties) {
32
+ let [name, types, isOptional] = property;
35
33
  const maybeProperty = o.getProperties().get(name);
36
34
  if (maybeProperty === undefined) {
37
35
  isOptional = true;
@@ -45,7 +43,7 @@ function getCliqueProperties(clique, builder, makePropertyType) {
45
43
  }
46
44
  types.add(maybeProperty.type);
47
45
  }
48
- properties[i][2] = isOptional;
46
+ property[2] = isOptional;
49
47
  }
50
48
  }
51
49
  const unifiedAdditionalProperties = additionalProperties === undefined
@@ -60,7 +60,7 @@ class UnionAccumulator {
60
60
  addAttributesToBuilder(this._nonStringTypeAttributes, kind, attributes);
61
61
  }
62
62
  addFullStringType(attributes, stringTypes) {
63
- let stringTypesAttributes = undefined;
63
+ let stringTypesAttributes;
64
64
  if (stringTypes === undefined) {
65
65
  stringTypes =
66
66
  StringTypes_js_1.stringTypesTypeAttributeKind.tryGetInAttributes(attributes);
@@ -5,8 +5,8 @@ import { TypeAttributeKind } from "./TypeAttributes.js";
5
5
  export type MinMaxConstraint = [number | undefined, number | undefined];
6
6
  export declare class MinMaxConstraintTypeAttributeKind extends TypeAttributeKind<MinMaxConstraint> {
7
7
  private readonly _typeKinds;
8
- private _minSchemaProperty;
9
- private _maxSchemaProperty;
8
+ private readonly _minSchemaProperty;
9
+ private readonly _maxSchemaProperty;
10
10
  constructor(name: string, _typeKinds: Set<TypeKind>, _minSchemaProperty: string, _maxSchemaProperty: string);
11
11
  get inIdentity(): boolean;
12
12
  combine(arr: MinMaxConstraint[]): MinMaxConstraint | undefined;
@@ -94,8 +94,8 @@ exports.minMaxLengthTypeAttributeKind = new MinMaxConstraintTypeAttributeKind("m
94
94
  function producer(schema, minProperty, maxProperty) {
95
95
  if (!(typeof schema === "object"))
96
96
  return undefined;
97
- let min = undefined;
98
- let max = undefined;
97
+ let min;
98
+ let max;
99
99
  if (typeof schema[minProperty] === "number") {
100
100
  min = schema[minProperty];
101
101
  }
@@ -25,9 +25,7 @@ class TypeAttributeKind {
25
25
  increaseDistance(attrs) {
26
26
  return attrs;
27
27
  }
28
- addToSchema(_schema, _t, _attrs) {
29
- return;
30
- }
28
+ addToSchema(_schema, _t, _attrs) { }
31
29
  children(_) {
32
30
  return new Set();
33
31
  }
@@ -98,7 +96,7 @@ function combineTypeAttributes(combinationKind, firstOrArray, second) {
98
96
  }
99
97
  const attributesByKind = (0, collection_utils_1.mapTranspose)(attributeArray);
100
98
  // FIXME: strongly type this
101
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
+ // biome-ignore lint/suspicious/noExplicitAny: heterogeneous by design; attribute values are typed by their kind
102
100
  function combine(attrs, kind) {
103
101
  (0, Support_js_1.assert)(attrs.length > 0, "Cannot combine zero type attributes");
104
102
  if (attrs.length === 1)
@@ -1,9 +1,8 @@
1
1
  import { type Declaration } from "./DeclarationIR.js";
2
2
  import { DependencyName, type Name, type Namer, Namespace } from "./Naming.js";
3
- import { type BlankLineConfig, type ForEachPosition, type RenderContext, Renderer } from "./Renderer.js";
3
+ import { type BlankLineConfig, type ForEachPosition, Renderer } from "./Renderer.js";
4
4
  import { type Sourcelike } from "./Source.js";
5
5
  import { type Comment, type CommentOptions } from "./support/Comments.js";
6
- import type { TargetLanguage } from "./TargetLanguage.js";
7
6
  import { type Transformation } from "./Transformers.js";
8
7
  import { type ClassProperty, ClassType, EnumType, ObjectType, type Type, type TypeKind, UnionType } from "./Type/index.js";
9
8
  export declare const topLevelNameOrder = 1;
@@ -34,7 +33,6 @@ export declare abstract class ConvenienceRenderer extends Renderer {
34
33
  private _haveOptionalProperties;
35
34
  private _cycleBreakerTypes?;
36
35
  private _alphabetizeProperties;
37
- constructor(targetLanguage: TargetLanguage, renderContext: RenderContext);
38
36
  get topLevels(): ReadonlyMap<string, Type>;
39
37
  /**
40
38
  * Return an array of strings which are not allowed as names in the global
@@ -44,8 +44,8 @@ const assignedPropertyNamesAttributeKind = new TypeAttributeKind("assignedProper
44
44
  const assignedMemberNamesAttributeKind = new TypeAttributeKind("assignedMemberNames");
45
45
  const assignedCaseNamesAttributeKind = new TypeAttributeKind("assignedCaseNames");
46
46
  export class ConvenienceRenderer extends Renderer {
47
- constructor(targetLanguage, renderContext) {
48
- super(targetLanguage, renderContext);
47
+ constructor() {
48
+ super(...arguments);
49
49
  this._alphabetizeProperties = false;
50
50
  }
51
51
  get topLevels() {
@@ -419,7 +419,7 @@ export class ConvenienceRenderer extends Renderer {
419
419
  }
420
420
  const typeNameForUnionMember = (t) => matchTypeExhaustive(t, (_noneType) => {
421
421
  return panic("none type should have been replaced");
422
- }, (_anyType) => "anything", (_nullType) => "null", (_boolType) => "bool", (_integerType) => "integer", (_doubleType) => "double", (_stringType) => "string", (arrayType) => typeNameForUnionMember(arrayType.items) + "_array", (classType) => lookup(this.nameForNamedType(classType)), (mapType) => typeNameForUnionMember(mapType.values) + "_map", (objectType) => {
422
+ }, (_anyType) => "anything", (_nullType) => "null", (_boolType) => "bool", (_integerType) => "integer", (_doubleType) => "double", (_stringType) => "string", (arrayType) => `${typeNameForUnionMember(arrayType.items)}_array`, (classType) => lookup(this.nameForNamedType(classType)), (mapType) => `${typeNameForUnionMember(mapType.values)}_map`, (objectType) => {
423
423
  assert(this.targetLanguage.supportsFullObjectType, "Object type should have been replaced in `replaceObjectType`");
424
424
  return lookup(this.nameForNamedType(objectType));
425
425
  }, (_enumType) => "enum", (_unionType) => "union", (transformedType) => transformedType.kind.replace("-", "_"));
@@ -654,7 +654,7 @@ export class ConvenienceRenderer extends Renderer {
654
654
  // A quote at the end of the line would merge with a closing
655
655
  // `"""` emitted right after it. The quote needs escaping iff
656
656
  // it's preceded by an even number of backslashes.
657
- if (lineEnd !== undefined && lineEnd.startsWith('"')) {
657
+ if (lineEnd === null || lineEnd === void 0 ? void 0 : lineEnd.startsWith('"')) {
658
658
  const trailing = /(\\*)"$/.exec(escaped);
659
659
  if (trailing !== null && trailing[1].length % 2 === 0) {
660
660
  escaped = `${escaped.slice(0, -1)}\\"`;
@@ -88,7 +88,6 @@ export function breakCycles(outEdges, chooseBreaker) {
88
88
  results.push([breakNode, info]);
89
89
  break;
90
90
  }
91
- continue;
92
91
  }
93
92
  return results;
94
93
  }
@@ -1,5 +1,12 @@
1
1
  /* eslint-disable */
2
+ // Adapted from ajv:
2
3
  // https://github.com/epoberezkin/ajv/blob/4d76c6fb813b136b6ec4fe74990bc97233d75dea/lib/compile/formats.js
4
+ //
5
+ // We deviate from ajv in that we recognize only strict RFC 3339 date-times:
6
+ // the date/time separator must be "T" (or "t"), not a space, and times must
7
+ // carry a timezone offset ("Z"/"z" or "+hh:mm"/"-hh:mm"). ajv accepted the
8
+ // lenient forms, which meant we inferred "date-time" for strings like
9
+ // "2013-06-15 21:10:28" that most target languages' date parsers reject.
3
10
  /*
4
11
  The MIT License (MIT)
5
12
 
@@ -25,8 +32,10 @@ SOFTWARE.
25
32
  */
26
33
  const DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/;
27
34
  const DAYS = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
28
- const TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
29
- const DATE_TIME_SEPARATOR = /t|\s/i;
35
+ // RFC 3339 full-time: the timezone offset is mandatory.
36
+ const TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)$/i;
37
+ // RFC 3339 date-time: the separator must be "T" or "t", never a space.
38
+ const DATE_TIME_SEPARATOR = /t/i;
30
39
  export class DefaultDateTimeRecognizer {
31
40
  isDate(str) {
32
41
  // full-date from http://tools.ietf.org/html/rfc3339#section-5.6
@@ -138,7 +138,6 @@ export function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOf
138
138
  for (const t of forwardDeclarable) {
139
139
  declarations.push({ kind: "define", type: t });
140
140
  }
141
- return;
142
141
  }
143
142
  /*
144
143
  if (_writeComponents) {
@@ -67,7 +67,7 @@ function replaceUnion(union, builder, forwardingRef, transformedTypes, debugPrin
67
67
  const memberTypeRef = memberForKind(kind);
68
68
  return new DecodingTransformer(graph, memberTypeRef, consumer(memberTypeRef));
69
69
  }
70
- let maybeStringType = undefined;
70
+ let maybeStringType;
71
71
  function getStringType() {
72
72
  if (maybeStringType === undefined) {
73
73
  maybeStringType = builder.getStringType(emptyTypeAttributes, StringTypes.unrestricted);