Skip to content

Commit c48e1d0

Browse files
committed
Do not use getModelWithoutTraitShapes
The Walker does not traverse relationships create by traits anyways.
1 parent cde5684 commit c48e1d0

File tree

3 files changed

+14
-13
lines changed

3 files changed

+14
-13
lines changed

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/CodegenVisitor.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import software.amazon.smithy.model.shapes.UnionShape;
5151
import software.amazon.smithy.model.traits.EnumTrait;
5252
import software.amazon.smithy.model.traits.PaginatedTrait;
53-
import software.amazon.smithy.model.transform.ModelTransformer;
5453
import software.amazon.smithy.model.validation.ValidationEvent;
5554
import software.amazon.smithy.typescript.codegen.TypeScriptSettings.ArtifactType;
5655
import software.amazon.smithy.typescript.codegen.integration.ProtocolGenerator;
@@ -85,7 +84,6 @@ class CodegenVisitor extends ShapeVisitor.Default<Void> {
8584
private final ServiceShape service;
8685
private final FileManifest fileManifest;
8786
private final SymbolProvider symbolProvider;
88-
private final Model nonTraits;
8987
private final TypeScriptDelegator writers;
9088
private final List<TypeScriptIntegration> integrations = new ArrayList<>();
9189
private final List<RuntimeClientPlugin> runtimePlugins = new ArrayList<>();
@@ -115,7 +113,6 @@ class CodegenVisitor extends ShapeVisitor.Default<Void> {
115113
modifiedModel = integration.preprocessModel(modifiedModel, settings);
116114
}
117115
model = modifiedModel;
118-
nonTraits = ModelTransformer.create().getModelWithoutTraitShapes(model);
119116

120117
service = settings.getService(model);
121118

@@ -180,7 +177,7 @@ void execute() {
180177
// Generate models that are connected to the service being generated.
181178
LOGGER.fine("Walking shapes from " + service.getId() + " to find shapes to generate");
182179
// Walk the tree.
183-
Collection<Shape> shapeSet = new Walker(nonTraits).walkShapes(service);
180+
Collection<Shape> shapeSet = new Walker(model).walkShapes(service);
184181

185182
Model prunedModel = Model.builder().addShapes(shapeSet).build();
186183

@@ -191,7 +188,7 @@ void execute() {
191188
for (Shape shape : TopologicalIndex.of(prunedModel).getRecursiveShapes()) {
192189
shape.accept(this);
193190
}
194-
SymbolVisitor.writeModelIndex(prunedModel, symbolProvider, fileManifest);
191+
SymbolVisitor.writeModelIndex(shapeSet, symbolProvider, fileManifest);
195192

196193
// Generate the client Node and Browser configuration files. These
197194
// files are switched between in package.json based on the targeted

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/SymbolVisitor.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import static java.lang.String.format;
1919

2020
import java.nio.file.Paths;
21+
import java.util.Collection;
2122
import java.util.Comparator;
2223
import java.util.HashMap;
2324
import java.util.HashSet;
@@ -118,8 +119,8 @@ final class SymbolVisitor implements SymbolProvider, ShapeVisitor<Symbol> {
118119
moduleNameDelegator = new ModuleNameDelegator(shapeChunkSize);
119120
}
120121

121-
static void writeModelIndex(Model model, SymbolProvider symbolProvider, FileManifest fileManifest) {
122-
ModuleNameDelegator.writeModelIndex(model, symbolProvider, fileManifest);
122+
static void writeModelIndex(Collection<Shape> shapes, SymbolProvider symbolProvider, FileManifest fileManifest) {
123+
ModuleNameDelegator.writeModelIndex(shapes, symbolProvider, fileManifest);
123124
}
124125

125126
@Override
@@ -442,19 +443,21 @@ public String formatModuleName(Shape shape, String name) {
442443
return path;
443444
}
444445

445-
static void writeModelIndex(Model model, SymbolProvider symbolProvider, FileManifest fileManifest) {
446+
static void writeModelIndex(Collection<Shape> shapes, SymbolProvider symbolProvider,
447+
FileManifest fileManifest) {
446448
TypeScriptWriter writer = new TypeScriptWriter("");
447449
String modelPrefix = Paths.get(".", CodegenUtils.SOURCE_FOLDER, SHAPE_NAMESPACE_PREFIX).toString();
448-
model.shapes()
450+
shapes.stream()
449451
.map(shape -> symbolProvider.toSymbol(shape).getNamespace())
450452
.filter(namespace -> namespace.startsWith(modelPrefix))
451453
.distinct()
452454
.sorted(Comparator.naturalOrder())
453455
.forEach(namespace -> writer.write(
454-
"export * from $S;", namespace.replaceFirst(modelPrefix, ".")));
456+
"export * from $S;", namespace.replaceFirst(modelPrefix, ".")));
455457
fileManifest.writeFile(
456-
Paths.get(CodegenUtils.SOURCE_FOLDER, SHAPE_NAMESPACE_PREFIX, "index.ts").toString(),
457-
writer.toString());
458+
Paths.get(CodegenUtils.SOURCE_FOLDER, SHAPE_NAMESPACE_PREFIX, "index.ts").toString(),
459+
writer.toString());
458460
}
461+
459462
}
460463
}

smithy-typescript-codegen/src/test/java/software/amazon/smithy/typescript/codegen/SymbolProviderTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static org.hamcrest.Matchers.containsString;
55
import static org.hamcrest.Matchers.equalTo;
66

7+
import java.util.Arrays;
78
import org.junit.jupiter.api.Test;
89
import software.amazon.smithy.build.MockManifest;
910
import software.amazon.smithy.codegen.core.Symbol;
@@ -57,7 +58,7 @@ public void createsSymbolsIntoTargetNamespace() {
5758
Symbol symbol1 = provider.toSymbol(shape1);
5859
Symbol symbol2 = provider.toSymbol(shape2);
5960
MockManifest manifest = new MockManifest();
60-
SymbolVisitor.writeModelIndex(model, provider, manifest);
61+
SymbolVisitor.writeModelIndex(Arrays.asList(shape1, shape2), provider, manifest);
6162

6263
assertThat(symbol1.getName(), equalTo("Hello"));
6364
assertThat(symbol1.getNamespace(), equalTo("./" + CodegenUtils.SOURCE_FOLDER + "/models/models_0"));

0 commit comments

Comments
 (0)