quicktype-core 23.1.3 → 23.2.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/ConvenienceRenderer.d.ts +2 -2
- package/dist/ConvenienceRenderer.js +38 -28
- package/dist/CycleBreaker.js +2 -3
- package/dist/DateTime.js +3 -1
- package/dist/DeclarationIR.d.ts +2 -2
- package/dist/DeclarationIR.js +13 -7
- package/dist/GatherNames.d.ts +1 -1
- package/dist/GatherNames.js +43 -26
- package/dist/Graph.js +3 -3
- package/dist/GraphRewriting.d.ts +5 -3
- package/dist/GraphRewriting.js +39 -41
- package/dist/Inference.d.ts +79 -0
- package/dist/Inference.js +75 -0
- package/dist/MakeTransformations.d.ts +3 -3
- package/dist/MakeTransformations.js +12 -15
- package/dist/MarkovChain.js +7 -8
- package/dist/Messages.d.ts +2 -2
- package/dist/Messages.js +6 -5
- package/dist/Naming.js +26 -24
- package/dist/Renderer.d.ts +3 -3
- package/dist/Renderer.js +9 -3
- package/dist/RendererOptions/index.d.ts +4 -4
- package/dist/RendererOptions/index.js +13 -13
- package/dist/Run.d.ts +5 -83
- package/dist/Run.js +114 -126
- package/dist/Source.d.ts +1 -1
- package/dist/Source.js +26 -20
- package/dist/TargetLanguage.d.ts +9 -9
- package/dist/TargetLanguage.js +2 -2
- package/dist/Transformers.d.ts +3 -2
- package/dist/Transformers.js +50 -61
- package/dist/Type/ProvenanceTypeAttributeKind.d.ts +2 -0
- package/dist/Type/ProvenanceTypeAttributeKind.js +28 -0
- package/dist/Type/TransformedStringType.d.ts +62 -0
- package/dist/Type/TransformedStringType.js +64 -0
- package/dist/{Type.d.ts → Type/Type.d.ts} +8 -65
- package/dist/{Type.js → Type/Type.js} +78 -106
- package/dist/{TypeBuilder.d.ts → Type/TypeBuilder.d.ts} +12 -10
- package/dist/{TypeBuilder.js → Type/TypeBuilder.js} +53 -83
- package/dist/Type/TypeBuilderUtils.d.ts +4 -0
- package/dist/Type/TypeBuilderUtils.js +18 -0
- package/dist/{TypeGraph.d.ts → Type/TypeGraph.d.ts} +7 -16
- package/dist/{TypeGraph.js → Type/TypeGraph.js} +43 -155
- package/dist/Type/TypeGraphUtils.d.ts +5 -0
- package/dist/Type/TypeGraphUtils.js +88 -0
- package/dist/Type/TypeRef.d.ts +12 -0
- package/dist/Type/TypeRef.js +49 -0
- package/dist/{TypeUtils.d.ts → Type/TypeUtils.d.ts} +2 -2
- package/dist/{TypeUtils.js → Type/TypeUtils.js} +43 -41
- package/dist/Type/index.d.ts +5 -0
- package/dist/Type/index.js +22 -0
- package/dist/UnifyClasses.d.ts +4 -4
- package/dist/UnifyClasses.js +35 -24
- package/dist/UnionBuilder.d.ts +2 -2
- package/dist/UnionBuilder.js +33 -20
- package/dist/attributes/AccessorNames.d.ts +3 -3
- package/dist/attributes/AccessorNames.js +22 -18
- package/dist/attributes/Constraints.d.ts +3 -3
- package/dist/attributes/Constraints.js +11 -9
- package/dist/attributes/Description.d.ts +2 -2
- package/dist/attributes/Description.js +11 -12
- package/dist/attributes/EnumValues.d.ts +3 -3
- package/dist/attributes/EnumValues.js +8 -6
- package/dist/attributes/StringTypes.d.ts +3 -3
- package/dist/attributes/StringTypes.js +19 -17
- package/dist/attributes/TypeAttributes.d.ts +2 -2
- package/dist/attributes/TypeAttributes.js +4 -4
- package/dist/attributes/TypeNames.js +36 -22
- package/dist/attributes/URIAttributes.d.ts +2 -2
- package/dist/attributes/URIAttributes.js +16 -8
- package/dist/index.d.ts +16 -14
- package/dist/index.js +9 -8
- package/dist/input/CompressedJSON.d.ts +1 -1
- package/dist/input/CompressedJSON.js +10 -7
- package/dist/input/Inference.d.ts +2 -2
- package/dist/input/Inference.js +25 -17
- package/dist/input/Inputs.d.ts +4 -4
- package/dist/input/Inputs.js +12 -12
- package/dist/input/JSONSchemaInput.d.ts +4 -20
- package/dist/input/JSONSchemaInput.js +127 -100
- package/dist/input/PathElement.d.ts +17 -0
- package/dist/input/PathElement.js +10 -0
- package/dist/input/PostmanCollection.d.ts +1 -1
- package/dist/input/PostmanCollection.js +28 -11
- package/dist/input/io/NodeIO.d.ts +1 -1
- package/dist/input/io/NodeIO.js +35 -16
- package/dist/input/io/get-stream/buffer-stream.d.ts +8 -2
- package/dist/input/io/get-stream/buffer-stream.js +2 -4
- package/dist/input/io/get-stream/index.d.ts +1 -1
- package/dist/input/io/get-stream/index.js +8 -9
- package/dist/language/All.d.ts +2 -2
- package/dist/language/All.js +8 -8
- package/dist/language/CJSON/CJSONRenderer.d.ts +9 -11
- package/dist/language/CJSON/CJSONRenderer.js +1273 -445
- package/dist/language/CJSON/constants.js +1 -1
- package/dist/language/CJSON/language.d.ts +3 -3
- package/dist/language/CJSON/language.js +7 -7
- package/dist/language/CJSON/utils.d.ts +3 -3
- package/dist/language/CJSON/utils.js +3 -3
- package/dist/language/CPlusPlus/CPlusPlusRenderer.d.ts +5 -5
- package/dist/language/CPlusPlus/CPlusPlusRenderer.js +351 -180
- package/dist/language/CPlusPlus/constants.js +1 -1
- package/dist/language/CPlusPlus/language.d.ts +4 -4
- package/dist/language/CPlusPlus/language.js +8 -8
- package/dist/language/CPlusPlus/utils.d.ts +3 -3
- package/dist/language/CPlusPlus/utils.js +10 -8
- package/dist/language/CSharp/CSharpRenderer.d.ts +6 -6
- package/dist/language/CSharp/CSharpRenderer.js +58 -20
- package/dist/language/CSharp/NewtonSoftCSharpRenderer.d.ts +4 -4
- package/dist/language/CSharp/NewtonSoftCSharpRenderer.js +125 -47
- package/dist/language/CSharp/SystemTextJsonCSharpRenderer.d.ts +4 -4
- package/dist/language/CSharp/SystemTextJsonCSharpRenderer.js +107 -45
- package/dist/language/CSharp/constants.js +1 -1
- package/dist/language/CSharp/index.d.ts +1 -1
- package/dist/language/CSharp/language.d.ts +12 -12
- package/dist/language/CSharp/language.js +29 -13
- package/dist/language/CSharp/utils.d.ts +2 -2
- package/dist/language/CSharp/utils.js +14 -14
- package/dist/language/Crystal/CrystalRenderer.d.ts +4 -4
- package/dist/language/Crystal/CrystalRenderer.js +15 -5
- package/dist/language/Crystal/constants.js +1 -1
- package/dist/language/Crystal/language.d.ts +1 -1
- package/dist/language/Crystal/language.js +1 -1
- package/dist/language/Dart/DartRenderer.d.ts +4 -4
- package/dist/language/Dart/DartRenderer.js +121 -39
- package/dist/language/Dart/constants.js +1 -1
- package/dist/language/Dart/language.d.ts +4 -4
- package/dist/language/Dart/language.js +6 -2
- package/dist/language/Dart/utils.js +11 -8
- package/dist/language/Elixir/ElixirRenderer.d.ts +5 -5
- package/dist/language/Elixir/ElixirRenderer.js +303 -179
- package/dist/language/Elixir/constants.js +2 -2
- package/dist/language/Elixir/language.d.ts +3 -3
- package/dist/language/Elixir/language.js +2 -2
- package/dist/language/Elixir/utils.js +8 -7
- package/dist/language/Elm/ElmRenderer.d.ts +5 -5
- package/dist/language/Elm/ElmRenderer.js +33 -33
- package/dist/language/Elm/constants.js +1 -1
- package/dist/language/Elm/language.d.ts +3 -3
- package/dist/language/Elm/language.js +3 -3
- package/dist/language/Elm/utils.js +8 -7
- package/dist/language/Golang/GolangRenderer.d.ts +4 -4
- package/dist/language/Golang/GolangRenderer.js +35 -40
- package/dist/language/Golang/language.d.ts +4 -4
- package/dist/language/Golang/language.js +2 -2
- package/dist/language/Golang/utils.d.ts +1 -1
- package/dist/language/Golang/utils.js +13 -5
- package/dist/language/Haskell/HaskellRenderer.d.ts +6 -6
- package/dist/language/Haskell/HaskellRenderer.js +22 -22
- package/dist/language/Haskell/constants.js +1 -1
- package/dist/language/Haskell/language.d.ts +3 -3
- package/dist/language/Haskell/language.js +3 -3
- package/dist/language/Haskell/utils.js +3 -3
- package/dist/language/JSONSchema/JSONSchemaRenderer.d.ts +1 -1
- package/dist/language/JSONSchema/JSONSchemaRenderer.js +15 -10
- package/dist/language/JSONSchema/language.d.ts +4 -4
- package/dist/language/JSONSchema/language.js +3 -3
- package/dist/language/JSONSchema/utils.js +2 -2
- package/dist/language/Java/DateTimeProvider.d.ts +2 -2
- package/dist/language/Java/DateTimeProvider.js +25 -9
- package/dist/language/Java/JavaJacksonRenderer.d.ts +5 -5
- package/dist/language/Java/JavaJacksonRenderer.js +58 -29
- package/dist/language/Java/JavaRenderer.d.ts +4 -4
- package/dist/language/Java/JavaRenderer.js +66 -47
- package/dist/language/Java/constants.js +2 -2
- package/dist/language/Java/language.d.ts +4 -4
- package/dist/language/Java/language.js +2 -2
- package/dist/language/Java/utils.js +11 -4
- package/dist/language/JavaScript/JavaScriptRenderer.d.ts +5 -5
- package/dist/language/JavaScript/JavaScriptRenderer.js +20 -13
- package/dist/language/JavaScript/index.d.ts +1 -1
- package/dist/language/JavaScript/language.d.ts +4 -4
- package/dist/language/JavaScript/language.js +3 -3
- package/dist/language/JavaScript/unicodeMaps.js +127 -79
- package/dist/language/JavaScriptPropTypes/JavaScriptPropTypesRenderer.d.ts +5 -5
- package/dist/language/JavaScriptPropTypes/JavaScriptPropTypesRenderer.js +33 -17
- package/dist/language/JavaScriptPropTypes/index.d.ts +1 -1
- package/dist/language/JavaScriptPropTypes/language.d.ts +4 -4
- package/dist/language/JavaScriptPropTypes/language.js +3 -3
- package/dist/language/Kotlin/KotlinJacksonRenderer.d.ts +5 -5
- package/dist/language/Kotlin/KotlinJacksonRenderer.js +59 -24
- package/dist/language/Kotlin/KotlinKlaxonRenderer.d.ts +5 -5
- package/dist/language/Kotlin/KotlinKlaxonRenderer.js +92 -28
- package/dist/language/Kotlin/KotlinRenderer.d.ts +4 -4
- package/dist/language/Kotlin/KotlinRenderer.js +46 -23
- package/dist/language/Kotlin/KotlinXRenderer.d.ts +6 -6
- package/dist/language/Kotlin/KotlinXRenderer.js +6 -2
- package/dist/language/Kotlin/constants.js +1 -1
- package/dist/language/Kotlin/language.d.ts +5 -5
- package/dist/language/Kotlin/language.js +5 -5
- package/dist/language/Kotlin/utils.js +2 -3
- package/dist/language/Objective-C/ObjectiveCRenderer.d.ts +4 -4
- package/dist/language/Objective-C/ObjectiveCRenderer.js +165 -68
- package/dist/language/Objective-C/constants.js +3 -3
- package/dist/language/Objective-C/language.d.ts +3 -3
- package/dist/language/Objective-C/language.js +3 -3
- package/dist/language/Objective-C/utils.js +9 -7
- package/dist/language/Php/PhpRenderer.d.ts +5 -5
- package/dist/language/Php/PhpRenderer.js +169 -71
- package/dist/language/Php/language.d.ts +4 -4
- package/dist/language/Php/language.js +2 -2
- package/dist/language/Php/utils.js +11 -4
- package/dist/language/Pike/PikeRenderer.d.ts +1 -1
- package/dist/language/Pike/PikeRenderer.js +40 -21
- package/dist/language/Pike/constants.js +1 -1
- package/dist/language/Pike/language.d.ts +1 -1
- package/dist/language/Pike/language.js +1 -1
- package/dist/language/Python/JSONPythonRenderer.d.ts +1 -1
- package/dist/language/Python/JSONPythonRenderer.js +203 -81
- package/dist/language/Python/PythonRenderer.d.ts +4 -4
- package/dist/language/Python/PythonRenderer.js +78 -32
- package/dist/language/Python/constants.js +2 -2
- package/dist/language/Python/language.d.ts +13 -13
- package/dist/language/Python/language.js +9 -7
- package/dist/language/Python/utils.js +2 -3
- package/dist/language/Ruby/RubyRenderer.d.ts +4 -4
- package/dist/language/Ruby/RubyRenderer.js +180 -55
- package/dist/language/Ruby/constants.js +4 -4
- package/dist/language/Ruby/language.d.ts +3 -3
- package/dist/language/Ruby/language.js +3 -3
- package/dist/language/Ruby/utils.d.ts +1 -1
- package/dist/language/Ruby/utils.js +23 -12
- package/dist/language/Rust/RustRenderer.d.ts +5 -5
- package/dist/language/Rust/RustRenderer.js +19 -7
- package/dist/language/Rust/constants.js +1 -1
- package/dist/language/Rust/language.d.ts +3 -3
- package/dist/language/Rust/language.js +4 -4
- package/dist/language/Rust/utils.js +25 -19
- package/dist/language/Scala3/CirceRenderer.d.ts +3 -3
- package/dist/language/Scala3/CirceRenderer.js +52 -15
- package/dist/language/Scala3/Scala3Renderer.d.ts +4 -4
- package/dist/language/Scala3/Scala3Renderer.js +35 -20
- package/dist/language/Scala3/constants.js +2 -2
- package/dist/language/Scala3/language.d.ts +4 -4
- package/dist/language/Scala3/language.js +4 -4
- package/dist/language/Scala3/utils.js +8 -8
- package/dist/language/Smithy4s/Smithy4sRenderer.d.ts +4 -4
- package/dist/language/Smithy4s/Smithy4sRenderer.js +35 -24
- package/dist/language/Smithy4s/constants.js +2 -2
- package/dist/language/Smithy4s/language.d.ts +4 -4
- package/dist/language/Smithy4s/language.js +3 -3
- package/dist/language/Smithy4s/utils.js +8 -8
- package/dist/language/Swift/SwiftRenderer.d.ts +4 -4
- package/dist/language/Swift/SwiftRenderer.js +91 -56
- package/dist/language/Swift/constants.js +1 -1
- package/dist/language/Swift/language.d.ts +5 -5
- package/dist/language/Swift/language.js +6 -6
- package/dist/language/Swift/utils.d.ts +3 -3
- package/dist/language/Swift/utils.js +2 -2
- package/dist/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.d.ts +4 -4
- package/dist/language/TypeScriptEffectSchema/TypeScriptEffectSchemaRenderer.js +24 -12
- package/dist/language/TypeScriptEffectSchema/index.d.ts +1 -1
- package/dist/language/TypeScriptEffectSchema/language.d.ts +3 -3
- package/dist/language/TypeScriptEffectSchema/language.js +2 -2
- package/dist/language/TypeScriptFlow/FlowRenderer.d.ts +3 -3
- package/dist/language/TypeScriptFlow/TypeScriptFlowBaseRenderer.d.ts +4 -4
- package/dist/language/TypeScriptFlow/TypeScriptFlowBaseRenderer.js +54 -26
- package/dist/language/TypeScriptFlow/TypeScriptRenderer.d.ts +3 -3
- package/dist/language/TypeScriptFlow/TypeScriptRenderer.js +18 -4
- package/dist/language/TypeScriptFlow/index.d.ts +1 -1
- package/dist/language/TypeScriptFlow/language.d.ts +5 -5
- package/dist/language/TypeScriptFlow/language.js +3 -3
- package/dist/language/TypeScriptFlow/utils.js +3 -3
- package/dist/language/TypeScriptZod/TypeScriptZodRenderer.d.ts +5 -5
- package/dist/language/TypeScriptZod/TypeScriptZodRenderer.js +24 -15
- package/dist/language/TypeScriptZod/language.d.ts +4 -4
- package/dist/language/TypeScriptZod/language.js +2 -2
- package/dist/language/index.d.ts +1 -1
- package/dist/language/types.d.ts +2 -2
- package/dist/rewrites/CombineClasses.d.ts +2 -2
- package/dist/rewrites/CombineClasses.js +14 -10
- package/dist/rewrites/ExpandStrings.d.ts +2 -2
- package/dist/rewrites/ExpandStrings.js +17 -13
- package/dist/rewrites/FlattenStrings.d.ts +2 -2
- package/dist/rewrites/FlattenStrings.js +3 -4
- package/dist/rewrites/FlattenUnions.d.ts +2 -2
- package/dist/rewrites/FlattenUnions.js +10 -11
- package/dist/rewrites/InferMaps.d.ts +2 -2
- package/dist/rewrites/InferMaps.js +10 -9
- package/dist/rewrites/ReplaceObjectType.d.ts +2 -2
- package/dist/rewrites/ReplaceObjectType.js +9 -9
- package/dist/rewrites/ResolveIntersections.d.ts +2 -2
- package/dist/rewrites/ResolveIntersections.js +44 -32
- package/dist/support/Acronyms.const.js +1 -1
- package/dist/support/Acronyms.js +10 -12
- package/dist/support/Chance.js +37 -17
- package/dist/support/Comments.d.ts +1 -1
- package/dist/support/Converters.js +4 -4
- package/dist/support/Strings.js +58 -50
- package/dist/support/Support.d.ts +1 -1
- package/dist/support/Support.js +39 -26
- package/dist/types.d.ts +0 -2
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@ import { DependencyName, type Name, type Namer, Namespace } from "./Naming";
|
|
|
3
3
|
import { type BlankLineConfig, type ForEachPosition, type RenderContext, Renderer } from "./Renderer";
|
|
4
4
|
import { type Sourcelike } from "./Source";
|
|
5
5
|
import { type Comment, type CommentOptions } from "./support/Comments";
|
|
6
|
-
import {
|
|
6
|
+
import type { TargetLanguage } from "./TargetLanguage";
|
|
7
7
|
import { type Transformation } from "./Transformers";
|
|
8
8
|
import { type ClassProperty, ClassType, EnumType, ObjectType, type Type, type TypeKind, UnionType } from "./Type";
|
|
9
9
|
export declare const topLevelNameOrder = 1;
|
|
@@ -130,7 +130,7 @@ export declare abstract class ConvenienceRenderer extends Renderer {
|
|
|
130
130
|
protected sourcelikeToString(src: Sourcelike): string;
|
|
131
131
|
protected get commentLineStart(): string;
|
|
132
132
|
protected emitComments(comments: Comment[]): void;
|
|
133
|
-
protected emitCommentLines(lines: Sourcelike[], { lineStart, firstLineStart, lineEnd, beforeComment, afterComment }?: CommentOptions): void;
|
|
133
|
+
protected emitCommentLines(lines: Sourcelike[], { lineStart, firstLineStart, lineEnd, beforeComment, afterComment, }?: CommentOptions): void;
|
|
134
134
|
protected emitDescription(description: Sourcelike[] | undefined): void;
|
|
135
135
|
protected emitDescriptionBlock(lines: Sourcelike[]): void;
|
|
136
136
|
protected emitPropertyTable(c: ClassType, makePropertyRow: (name: Name, jsonName: string, p: ClassProperty) => Sourcelike[]): void;
|
|
@@ -18,8 +18,8 @@ const Strings_1 = require("./support/Strings");
|
|
|
18
18
|
const Support_1 = require("./support/Support");
|
|
19
19
|
const Transformers_1 = require("./Transformers");
|
|
20
20
|
const Type_1 = require("./Type");
|
|
21
|
-
const TypeGraph_1 = require("./TypeGraph");
|
|
22
|
-
const TypeUtils_1 = require("./TypeUtils");
|
|
21
|
+
const TypeGraph_1 = require("./Type/TypeGraph");
|
|
22
|
+
const TypeUtils_1 = require("./Type/TypeUtils");
|
|
23
23
|
const wordWrap = (0, wordwrap_1.default)(90);
|
|
24
24
|
exports.topLevelNameOrder = 1;
|
|
25
25
|
const givenNameOrder = 10;
|
|
@@ -37,7 +37,7 @@ function splitDescription(descriptions) {
|
|
|
37
37
|
return undefined;
|
|
38
38
|
return wordWrap(description)
|
|
39
39
|
.split("\n")
|
|
40
|
-
.map(l => l.trim());
|
|
40
|
+
.map((l) => l.trim());
|
|
41
41
|
}
|
|
42
42
|
const assignedNameAttributeKind = new TypeAttributes_1.TypeAttributeKind("assignedName");
|
|
43
43
|
const assignedPropertyNamesAttributeKind = new TypeAttributes_1.TypeAttributeKind("assignedPropertyNames");
|
|
@@ -117,7 +117,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
117
117
|
return (0, Support_1.defined)(this._nameStoreView);
|
|
118
118
|
}
|
|
119
119
|
descriptionForType(t) {
|
|
120
|
-
|
|
120
|
+
const description = this.typeGraph.attributeStore.tryGet(Description_1.descriptionTypeAttributeKind, t);
|
|
121
121
|
return splitDescription(description);
|
|
122
122
|
}
|
|
123
123
|
descriptionForClassProperty(o, name) {
|
|
@@ -139,7 +139,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
139
139
|
this._otherForbiddenNamespaces = new Map();
|
|
140
140
|
this._globalNamespace = new Naming_1.Namespace("global", undefined, [this._globalForbiddenNamespace], []);
|
|
141
141
|
const { objects, enums, unions } = this.typeGraph.allNamedTypesSeparated();
|
|
142
|
-
const namedUnions = (0, collection_utils_1.setFilter)(unions, u => this.unionNeedsName(u));
|
|
142
|
+
const namedUnions = (0, collection_utils_1.setFilter)(unions, (u) => this.unionNeedsName(u));
|
|
143
143
|
for (const [name, t] of this.topLevels) {
|
|
144
144
|
this.nameStoreView.setForTopLevel(name, this.addNameForTopLevel(t, name));
|
|
145
145
|
}
|
|
@@ -263,8 +263,12 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
263
263
|
// maybe we'll need global properties for some weird language at
|
|
264
264
|
// some point.
|
|
265
265
|
const alternative = `${o.getCombinedName()}_${jsonName}`;
|
|
266
|
-
const order = assignedName === undefined
|
|
267
|
-
|
|
266
|
+
const order = assignedName === undefined
|
|
267
|
+
? classPropertyNameOrder
|
|
268
|
+
: assignedClassPropertyNameOrder;
|
|
269
|
+
const names = assignedName === undefined
|
|
270
|
+
? [jsonName, alternative]
|
|
271
|
+
: [assignedName];
|
|
268
272
|
return new Naming_1.SimpleName(names, namer, order);
|
|
269
273
|
}
|
|
270
274
|
makePropertyDependencyNames(_o, _className, _p, _jsonName, _name) {
|
|
@@ -301,7 +305,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
301
305
|
if (isFixed) {
|
|
302
306
|
return new Naming_1.FixedName((0, Support_1.defined)(assignedName));
|
|
303
307
|
}
|
|
304
|
-
return new Naming_1.DependencyName((0, Support_1.nonNull)(this._unionMemberNamer), unionMemberNameOrder, lookup => {
|
|
308
|
+
return new Naming_1.DependencyName((0, Support_1.nonNull)(this._unionMemberNamer), unionMemberNameOrder, (lookup) => {
|
|
305
309
|
if (assignedName !== undefined)
|
|
306
310
|
return assignedName;
|
|
307
311
|
return this.proposeUnionMemberName(u, unionName, t, lookup);
|
|
@@ -319,7 +323,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
319
323
|
else {
|
|
320
324
|
ns = new Naming_1.Namespace(u.getCombinedName(), this.globalNamespace, forbiddenNamespaces, forbiddenNames);
|
|
321
325
|
}
|
|
322
|
-
|
|
326
|
+
const names = new Map();
|
|
323
327
|
for (const t of u.members) {
|
|
324
328
|
const name = this.makeNameForUnionMember(u, unionName, (0, Transformers_1.followTargetType)(t));
|
|
325
329
|
names.set(t, ns.add(name));
|
|
@@ -330,8 +334,12 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
330
334
|
// FIXME: See the FIXME in `makeNameForProperty`. We do have global
|
|
331
335
|
// enum cases, though (in Go), so this is actually useful already.
|
|
332
336
|
const alternative = `${e.getCombinedName()}_${caseName}`;
|
|
333
|
-
const order = assignedName === undefined
|
|
334
|
-
|
|
337
|
+
const order = assignedName === undefined
|
|
338
|
+
? enumCaseNameOrder
|
|
339
|
+
: assignedEnumCaseNameOrder;
|
|
340
|
+
const names = assignedName === undefined
|
|
341
|
+
? [caseName, alternative]
|
|
342
|
+
: [assignedName];
|
|
335
343
|
return new Naming_1.SimpleName(names, (0, Support_1.nonNull)(this._enumCaseNamer), order);
|
|
336
344
|
}
|
|
337
345
|
// FIXME: this is very similar to addPropertyNameds and addUnionMemberNames
|
|
@@ -346,7 +354,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
346
354
|
else {
|
|
347
355
|
ns = new Naming_1.Namespace(e.getCombinedName(), this.globalNamespace, forbiddenNamespaces, forbiddenNames);
|
|
348
356
|
}
|
|
349
|
-
|
|
357
|
+
const names = new Map();
|
|
350
358
|
const accessorNames = (0, AccessorNames_1.enumCaseNames)(e, this.targetLanguage.name);
|
|
351
359
|
for (const caseName of e.cases) {
|
|
352
360
|
const [assignedName, isFixed] = (0, AccessorNames_1.getAccessorName)(accessorNames, caseName);
|
|
@@ -409,12 +417,12 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
409
417
|
if (simpleName !== null) {
|
|
410
418
|
return simpleName;
|
|
411
419
|
}
|
|
412
|
-
const typeNameForUnionMember = (t) => (0, TypeUtils_1.matchTypeExhaustive)(t, _noneType => {
|
|
420
|
+
const typeNameForUnionMember = (t) => (0, TypeUtils_1.matchTypeExhaustive)(t, (_noneType) => {
|
|
413
421
|
return (0, Support_1.panic)("none type should have been replaced");
|
|
414
|
-
}, _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) => {
|
|
415
423
|
(0, Support_1.assert)(this.targetLanguage.supportsFullObjectType, "Object type should have been replaced in `replaceObjectType`");
|
|
416
424
|
return lookup(this.nameForNamedType(objectType));
|
|
417
|
-
}, _enumType => "enum", _unionType => "union", transformedType => transformedType.kind.replace("-", "_"));
|
|
425
|
+
}, (_enumType) => "enum", (_unionType) => "union", (transformedType) => transformedType.kind.replace("-", "_"));
|
|
418
426
|
return typeNameForUnionMember(fieldType);
|
|
419
427
|
}
|
|
420
428
|
nameForNamedType(t) {
|
|
@@ -431,7 +439,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
431
439
|
}
|
|
432
440
|
isCycleBreakerType(t) {
|
|
433
441
|
if (this._cycleBreakerTypes === undefined) {
|
|
434
|
-
this._cycleBreakerTypes = (0, DeclarationIR_1.cycleBreakerTypesForGraph)(this.typeGraph, s => this.isImplicitCycleBreaker(s), s => this.canBreakCycles(s));
|
|
442
|
+
this._cycleBreakerTypes = (0, DeclarationIR_1.cycleBreakerTypesForGraph)(this.typeGraph, (s) => this.isImplicitCycleBreaker(s), (s) => this.canBreakCycles(s));
|
|
435
443
|
}
|
|
436
444
|
return this._cycleBreakerTypes.has(t);
|
|
437
445
|
}
|
|
@@ -466,9 +474,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
466
474
|
return (0, Support_1.defined)(this.names.get(name));
|
|
467
475
|
});
|
|
468
476
|
}
|
|
469
|
-
|
|
470
|
-
return properties;
|
|
471
|
-
}
|
|
477
|
+
return properties;
|
|
472
478
|
}
|
|
473
479
|
forEachClassProperty(o, blankLocations, f) {
|
|
474
480
|
const propertyNames = (0, Support_1.defined)(this._propertyNamesStoreView).get(o);
|
|
@@ -496,7 +502,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
496
502
|
}
|
|
497
503
|
forEachEnumCase(e, blankLocations, f) {
|
|
498
504
|
const caseNames = (0, Support_1.defined)(this._caseNamesStoreView).get(e);
|
|
499
|
-
const sortedCaseNames = (0, collection_utils_1.mapSortBy)(caseNames, n => (0, Support_1.defined)(this.names.get(n)));
|
|
505
|
+
const sortedCaseNames = (0, collection_utils_1.mapSortBy)(caseNames, (n) => (0, Support_1.defined)(this.names.get(n)));
|
|
500
506
|
this.forEachWithBlankLines(sortedCaseNames, blankLocations, f);
|
|
501
507
|
}
|
|
502
508
|
forEachTransformation(blankLocations, f) {
|
|
@@ -554,7 +560,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
554
560
|
return "// ";
|
|
555
561
|
}
|
|
556
562
|
emitComments(comments) {
|
|
557
|
-
comments.forEach(comment => {
|
|
563
|
+
comments.forEach((comment) => {
|
|
558
564
|
if ((0, Comments_1.isStringComment)(comment)) {
|
|
559
565
|
this.emitCommentLines([comment]);
|
|
560
566
|
}
|
|
@@ -570,7 +576,7 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
570
576
|
this.ensureBlankLine();
|
|
571
577
|
});
|
|
572
578
|
}
|
|
573
|
-
emitCommentLines(lines, { lineStart = this.commentLineStart, firstLineStart = lineStart, lineEnd, beforeComment, afterComment } = {}) {
|
|
579
|
+
emitCommentLines(lines, { lineStart = this.commentLineStart, firstLineStart = lineStart, lineEnd, beforeComment, afterComment, } = {}) {
|
|
574
580
|
if (beforeComment !== undefined) {
|
|
575
581
|
this.emitLine(beforeComment);
|
|
576
582
|
}
|
|
@@ -620,18 +626,22 @@ class ConvenienceRenderer extends Renderer_1.Renderer {
|
|
|
620
626
|
emitTable();
|
|
621
627
|
}
|
|
622
628
|
processGraph() {
|
|
623
|
-
this._declarationIR = (0, DeclarationIR_1.declarationsForGraph)(this.typeGraph, this.needsTypeDeclarationBeforeUse
|
|
629
|
+
this._declarationIR = (0, DeclarationIR_1.declarationsForGraph)(this.typeGraph, this.needsTypeDeclarationBeforeUse
|
|
630
|
+
? (t) => this.canBeForwardDeclared(t)
|
|
631
|
+
: undefined, (t) => this.childrenOfType(t), (t) => {
|
|
624
632
|
if (t instanceof Type_1.UnionType) {
|
|
625
633
|
return this.unionNeedsName(t);
|
|
626
634
|
}
|
|
627
635
|
return (0, TypeUtils_1.isNamedType)(t);
|
|
628
636
|
});
|
|
629
637
|
const types = this.typeGraph.allTypesUnordered();
|
|
630
|
-
this._haveUnions = (0, collection_utils_1.iterableSome)(types, t => t instanceof Type_1.UnionType);
|
|
631
|
-
this._haveMaps = (0, collection_utils_1.iterableSome)(types, t => t instanceof Type_1.MapType);
|
|
632
|
-
const classTypes = (0, collection_utils_1.setFilter)(types, t => t instanceof Type_1.ClassType);
|
|
633
|
-
this._haveOptionalProperties = (0, collection_utils_1.iterableSome)(classTypes, c => (0, collection_utils_1.mapSome)(c.getProperties(), p => p.isOptional));
|
|
634
|
-
this._namedTypes = this._declarationIR.declarations
|
|
638
|
+
this._haveUnions = (0, collection_utils_1.iterableSome)(types, (t) => t instanceof Type_1.UnionType);
|
|
639
|
+
this._haveMaps = (0, collection_utils_1.iterableSome)(types, (t) => t instanceof Type_1.MapType);
|
|
640
|
+
const classTypes = (0, collection_utils_1.setFilter)(types, (t) => t instanceof Type_1.ClassType);
|
|
641
|
+
this._haveOptionalProperties = (0, collection_utils_1.iterableSome)(classTypes, (c) => (0, collection_utils_1.mapSome)(c.getProperties(), (p) => p.isOptional));
|
|
642
|
+
this._namedTypes = this._declarationIR.declarations
|
|
643
|
+
.filter((d) => d.kind === "define")
|
|
644
|
+
.map((d) => d.type);
|
|
635
645
|
const { objects, enums, unions } = (0, TypeUtils_1.separateNamedTypes)(this._namedTypes);
|
|
636
646
|
this._namedObjects = new Set(objects);
|
|
637
647
|
this._namedEnums = new Set(enums);
|
package/dist/CycleBreaker.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.breakCycles =
|
|
3
|
+
exports.breakCycles = breakCycles;
|
|
4
4
|
const Support_1 = require("./support/Support");
|
|
5
5
|
function breakCycles(outEdges, chooseBreaker) {
|
|
6
6
|
const numNodes = outEdges.length;
|
|
@@ -72,7 +72,7 @@ function breakCycles(outEdges, chooseBreaker) {
|
|
|
72
72
|
// We could count the number of reachable nodes for all nodes in the graph,
|
|
73
73
|
// and then pick one of the nodes with the lowest number, which would pick
|
|
74
74
|
// the dependee cycle.
|
|
75
|
-
const maybeEdge = outEdges[n].find(x => !done[x]);
|
|
75
|
+
const maybeEdge = outEdges[n].find((x) => !done[x]);
|
|
76
76
|
if (maybeEdge === undefined) {
|
|
77
77
|
return (0, Support_1.panic)("Presumed cycle is not a cycle");
|
|
78
78
|
}
|
|
@@ -95,4 +95,3 @@ function breakCycles(outEdges, chooseBreaker) {
|
|
|
95
95
|
}
|
|
96
96
|
return results;
|
|
97
97
|
}
|
|
98
|
-
exports.breakCycles = breakCycles;
|
package/dist/DateTime.js
CHANGED
|
@@ -52,7 +52,9 @@ class DefaultDateTimeRecognizer {
|
|
|
52
52
|
isDateTime(str) {
|
|
53
53
|
// http://tools.ietf.org/html/rfc3339#section-5.6
|
|
54
54
|
const dateTime = str.split(DATE_TIME_SEPARATOR);
|
|
55
|
-
return dateTime.length === 2 &&
|
|
55
|
+
return (dateTime.length === 2 &&
|
|
56
|
+
this.isDate(dateTime[0]) &&
|
|
57
|
+
this.isTime(dateTime[1]));
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
exports.DefaultDateTimeRecognizer = DefaultDateTimeRecognizer;
|
package/dist/DeclarationIR.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Type } from "./Type/Type";
|
|
2
|
+
import type { TypeGraph } from "./Type/TypeGraph";
|
|
3
3
|
export type DeclarationKind = "forward" | "define";
|
|
4
4
|
export interface Declaration {
|
|
5
5
|
readonly kind: DeclarationKind;
|
package/dist/DeclarationIR.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DeclarationIR = void 0;
|
|
4
|
+
exports.cycleBreakerTypesForGraph = cycleBreakerTypesForGraph;
|
|
5
|
+
exports.declarationsForGraph = declarationsForGraph;
|
|
4
6
|
const collection_utils_1 = require("collection-utils");
|
|
5
7
|
const Graph_1 = require("./Graph");
|
|
6
8
|
const Messages_1 = require("./Messages");
|
|
@@ -62,7 +64,6 @@ function cycleBreakerTypesForGraph(graph, isImplicitCycleBreaker, canBreakCycles
|
|
|
62
64
|
}
|
|
63
65
|
return cycleBreakerTypes;
|
|
64
66
|
}
|
|
65
|
-
exports.cycleBreakerTypesForGraph = cycleBreakerTypesForGraph;
|
|
66
67
|
function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, needsDeclaration) {
|
|
67
68
|
/*
|
|
68
69
|
function nodeTitle(t: Type): string {
|
|
@@ -92,7 +93,10 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
|
|
|
92
93
|
// 1. Only one node in the cycle needs a declaration, in which
|
|
93
94
|
// case it's the breaker, and no forward declaration is necessary.
|
|
94
95
|
if (declarationNeeded.size === 1) {
|
|
95
|
-
declarations.push({
|
|
96
|
+
declarations.push({
|
|
97
|
+
kind: "define",
|
|
98
|
+
type: (0, Support_1.defined)((0, collection_utils_1.iterableFirst)(declarationNeeded)),
|
|
99
|
+
});
|
|
96
100
|
return;
|
|
97
101
|
}
|
|
98
102
|
// 2. No node in the cycle needs a declaration, but it's also
|
|
@@ -105,7 +109,10 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
|
|
|
105
109
|
// declaration, so we can pick any one. This is not a forward
|
|
106
110
|
// declaration, either.
|
|
107
111
|
if (declarationNeeded.size === 0) {
|
|
108
|
-
declarations.push({
|
|
112
|
+
declarations.push({
|
|
113
|
+
kind: "define",
|
|
114
|
+
type: (0, Support_1.defined)((0, collection_utils_1.iterableFirst)(component)),
|
|
115
|
+
});
|
|
109
116
|
return;
|
|
110
117
|
}
|
|
111
118
|
// 4. More than one node needs a declaration, and we don't need
|
|
@@ -125,14 +132,14 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
|
|
|
125
132
|
// we declare the types we previously forward-declared.
|
|
126
133
|
const forwardDeclarable = (0, collection_utils_1.setFilter)(component, canBeForwardDeclared);
|
|
127
134
|
if (forwardDeclarable.size === 0) {
|
|
128
|
-
|
|
135
|
+
(0, Messages_1.messageError)("IRNoForwardDeclarableTypeInCycle", {});
|
|
129
136
|
}
|
|
130
137
|
for (const t of forwardDeclarable) {
|
|
131
138
|
declarations.push({ kind: "forward", type: t });
|
|
132
139
|
}
|
|
133
140
|
(0, collection_utils_1.setUnionInto)(forwardedTypes, forwardDeclarable);
|
|
134
141
|
const rest = (0, collection_utils_1.setSubtract)(component, forwardDeclarable);
|
|
135
|
-
const restGraph = new Graph_1.Graph(rest, true, t => (0, collection_utils_1.setIntersect)(childrenOfType(t), rest));
|
|
142
|
+
const restGraph = new Graph_1.Graph(rest, true, (t) => (0, collection_utils_1.setIntersect)(childrenOfType(t), rest));
|
|
136
143
|
processGraph(restGraph, false);
|
|
137
144
|
for (const t of forwardDeclarable) {
|
|
138
145
|
declarations.push({ kind: "define", type: t });
|
|
@@ -162,4 +169,3 @@ function declarationsForGraph(typeGraph, canBeForwardDeclared, childrenOfType, n
|
|
|
162
169
|
processGraph(fullGraph, true);
|
|
163
170
|
return new DeclarationIR(declarations, forwardedTypes);
|
|
164
171
|
}
|
|
165
|
-
exports.declarationsForGraph = declarationsForGraph;
|
package/dist/GatherNames.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { TypeGraph } from "./Type/TypeGraph";
|
|
2
2
|
export declare function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint: boolean): void;
|
package/dist/GatherNames.js
CHANGED
|
@@ -15,22 +15,32 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.gatherNames =
|
|
36
|
+
exports.gatherNames = gatherNames;
|
|
27
37
|
const collection_utils_1 = require("collection-utils");
|
|
28
38
|
const pluralize = __importStar(require("pluralize"));
|
|
29
39
|
const TypeNames_1 = require("./attributes/TypeNames");
|
|
30
40
|
const Support_1 = require("./support/Support");
|
|
31
41
|
const Transformers_1 = require("./Transformers");
|
|
32
|
-
const Type_1 = require("./Type");
|
|
33
|
-
const TypeUtils_1 = require("./TypeUtils");
|
|
42
|
+
const Type_1 = require("./Type/Type");
|
|
43
|
+
const TypeUtils_1 = require("./Type/TypeUtils");
|
|
34
44
|
class UniqueQueue {
|
|
35
45
|
constructor() {
|
|
36
46
|
this._present = new Set();
|
|
@@ -170,10 +180,12 @@ function gatherNames(graph, destructive, debugPrint) {
|
|
|
170
180
|
}
|
|
171
181
|
}
|
|
172
182
|
else {
|
|
173
|
-
(0, TypeUtils_1.matchCompoundType)(t, arrayType => {
|
|
174
|
-
addNames(arrayType.items, names === null
|
|
175
|
-
|
|
176
|
-
|
|
183
|
+
(0, TypeUtils_1.matchCompoundType)(t, (arrayType) => {
|
|
184
|
+
addNames(arrayType.items, names === null
|
|
185
|
+
? null
|
|
186
|
+
: (0, collection_utils_1.setMap)(names, pluralize.singular));
|
|
187
|
+
}, (_classType) => (0, Support_1.panic)("We handled this above"), (_mapType) => (0, Support_1.panic)("We handled this above"), (_objectType) => (0, Support_1.panic)("We handled this above"), (unionType) => {
|
|
188
|
+
const members = (0, collection_utils_1.setSortBy)(unionType.members, (member) => member.kind);
|
|
177
189
|
for (const memberType of members) {
|
|
178
190
|
addNames(memberType, names);
|
|
179
191
|
}
|
|
@@ -234,15 +246,16 @@ function gatherNames(graph, destructive, debugPrint) {
|
|
|
234
246
|
else if (ancestorNames !== undefined) {
|
|
235
247
|
const alternatives = [];
|
|
236
248
|
for (const name of names) {
|
|
237
|
-
alternatives.push(...Array.from(ancestorNames).map(an => `${an}_${name}`));
|
|
249
|
+
alternatives.push(...Array.from(ancestorNames).map((an) => `${an}_${name}`));
|
|
238
250
|
// FIXME: add alternatives with the suffix here, too?
|
|
239
|
-
alternatives.push(...Array.from(ancestorNames).map(an => `${an}_${name}_${t.kind}`));
|
|
251
|
+
alternatives.push(...Array.from(ancestorNames).map((an) => `${an}_${name}_${t.kind}`));
|
|
240
252
|
// FIXME: add alternatives with the suffix here, too?
|
|
241
253
|
}
|
|
242
254
|
ancestorAlternatives = addAlternatives(ancestorAlternatives, alternatives);
|
|
243
255
|
}
|
|
244
256
|
}
|
|
245
|
-
if (alternativeSuffix !== undefined &&
|
|
257
|
+
if (alternativeSuffix !== undefined &&
|
|
258
|
+
directAlternatives !== null) {
|
|
246
259
|
const alternatives = [];
|
|
247
260
|
for (const name of names) {
|
|
248
261
|
// FIXME: we should only add these for names we couldn't singularize
|
|
@@ -268,13 +281,16 @@ function gatherNames(graph, destructive, debugPrint) {
|
|
|
268
281
|
}
|
|
269
282
|
}
|
|
270
283
|
else {
|
|
271
|
-
(0, TypeUtils_1.matchCompoundType)(t, arrayType => {
|
|
284
|
+
(0, TypeUtils_1.matchCompoundType)(t, (arrayType) => {
|
|
272
285
|
processType(ancestor, arrayType.items, "element");
|
|
273
|
-
}, _classType => (0, Support_1.panic)("We handled this above"), _mapType => (0, Support_1.panic)("We handled this above"), _objectType => (0, Support_1.panic)("We handled this above"), unionType => {
|
|
274
|
-
const members = (0, collection_utils_1.setSortBy)(unionType.members, member => member.kind);
|
|
286
|
+
}, (_classType) => (0, Support_1.panic)("We handled this above"), (_mapType) => (0, Support_1.panic)("We handled this above"), (_objectType) => (0, Support_1.panic)("We handled this above"), (unionType) => {
|
|
287
|
+
const members = (0, collection_utils_1.setSortBy)(unionType.members, (member) => member.kind);
|
|
275
288
|
const unionHasGivenName = unionType.hasNames && !unionType.getNames().areInferred;
|
|
276
|
-
const unionIsAncestor = unionHasGivenName ||
|
|
277
|
-
|
|
289
|
+
const unionIsAncestor = unionHasGivenName ||
|
|
290
|
+
(0, TypeUtils_1.nullableFromUnion)(unionType) === null;
|
|
291
|
+
const ancestorForMembers = unionIsAncestor
|
|
292
|
+
? unionType
|
|
293
|
+
: ancestor;
|
|
278
294
|
for (const memberType of members) {
|
|
279
295
|
processType(ancestorForMembers, memberType, undefined);
|
|
280
296
|
}
|
|
@@ -298,7 +314,7 @@ function gatherNames(graph, destructive, debugPrint) {
|
|
|
298
314
|
if (alternatives === undefined) {
|
|
299
315
|
alternatives = new Set();
|
|
300
316
|
}
|
|
301
|
-
alternatives = (0, collection_utils_1.setUnion)(alternatives, (0, collection_utils_1.setMap)(names, name => `${name}_${t.kind}`));
|
|
317
|
+
alternatives = (0, collection_utils_1.setUnion)(alternatives, (0, collection_utils_1.setMap)(names, (name) => `${name}_${t.kind}`));
|
|
302
318
|
directAlternativesForType.set(t, alternatives);
|
|
303
319
|
}
|
|
304
320
|
for (const t of graph.allTypesUnordered()) {
|
|
@@ -317,13 +333,15 @@ function gatherNames(graph, destructive, debugPrint) {
|
|
|
317
333
|
alternatives = undefined;
|
|
318
334
|
}
|
|
319
335
|
else {
|
|
320
|
-
if (directAlternatives !== null &&
|
|
336
|
+
if (directAlternatives !== null &&
|
|
337
|
+
directAlternatives !== undefined) {
|
|
321
338
|
alternatives = directAlternatives;
|
|
322
339
|
}
|
|
323
340
|
else {
|
|
324
341
|
alternatives = new Set();
|
|
325
342
|
}
|
|
326
|
-
if (ancestorAlternatives !== null &&
|
|
343
|
+
if (ancestorAlternatives !== null &&
|
|
344
|
+
ancestorAlternatives !== undefined) {
|
|
327
345
|
alternatives = (0, collection_utils_1.setUnion)(alternatives, ancestorAlternatives);
|
|
328
346
|
}
|
|
329
347
|
}
|
|
@@ -332,4 +350,3 @@ function gatherNames(graph, destructive, debugPrint) {
|
|
|
332
350
|
setNames(t, t.hasNames ? t.getNames().add([typeNames]) : typeNames);
|
|
333
351
|
}
|
|
334
352
|
}
|
|
335
|
-
exports.gatherNames = gatherNames;
|
package/dist/Graph.js
CHANGED
|
@@ -148,7 +148,7 @@ class Graph {
|
|
|
148
148
|
edgesArray = edges;
|
|
149
149
|
}
|
|
150
150
|
else {
|
|
151
|
-
edgesArray = this._nodes.map(n => Array.from(edges(n)).map(s => (0, Support_1.defined)(this._indexByNode.get(s))));
|
|
151
|
+
edgesArray = this._nodes.map((n) => Array.from(edges(n)).map((s) => (0, Support_1.defined)(this._indexByNode.get(s))));
|
|
152
152
|
}
|
|
153
153
|
if (invertDirection) {
|
|
154
154
|
edgesArray = invertEdges(edgesArray);
|
|
@@ -163,7 +163,7 @@ class Graph {
|
|
|
163
163
|
}
|
|
164
164
|
findRoots() {
|
|
165
165
|
const roots = findRoots(this._successors);
|
|
166
|
-
return new Set(roots.map(n => this._nodes[n]));
|
|
166
|
+
return new Set(roots.map((n) => this._nodes[n]));
|
|
167
167
|
}
|
|
168
168
|
// The subgraph starting at `root` must be acyclic.
|
|
169
169
|
dfsTraversal(root, preOrder, process) {
|
|
@@ -187,7 +187,7 @@ class Graph {
|
|
|
187
187
|
stronglyConnectedComponents() {
|
|
188
188
|
const components = stronglyConnectedComponents(this._successors);
|
|
189
189
|
const componentSuccessors = buildMetaSuccessors(this._successors, components);
|
|
190
|
-
return new Graph(components.map(ns => (0, collection_utils_1.setMap)(ns, n => this._nodes[n])), false, componentSuccessors);
|
|
190
|
+
return new Graph(components.map((ns) => (0, collection_utils_1.setMap)(ns, (n) => this._nodes[n])), false, componentSuccessors);
|
|
191
191
|
}
|
|
192
192
|
makeDot(includeNode, nodeLabel) {
|
|
193
193
|
const lines = [];
|
package/dist/GraphRewriting.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type TypeAttributes } from "./attributes/TypeAttributes";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
2
|
+
import type { ClassProperty, MaybeTypeIdentity, PrimitiveTypeKind, Type } from "./Type";
|
|
3
|
+
import { TypeBuilder } from "./Type/TypeBuilder";
|
|
4
|
+
import type { StringTypeMapping } from "./Type/TypeBuilderUtils";
|
|
5
|
+
import type { TypeGraph } from "./Type/TypeGraph";
|
|
6
|
+
import { type TypeRef } from "./Type/TypeRef";
|
|
5
7
|
export interface TypeLookerUp {
|
|
6
8
|
lookupTypeRefs: (typeRefs: TypeRef[], forwardingRef?: TypeRef) => TypeRef | undefined;
|
|
7
9
|
reconstituteTypeRef: (typeRef: TypeRef, attributes?: TypeAttributes, forwardingRef?: TypeRef) => TypeRef;
|